SQL Server 效能最佳化

來源:互聯網
上載者:User

標籤:style   blog   color   os   使用   for   ar   資料   div   

今天有位網友找我給他原有的系統資料庫最佳化下查詢速度,個人總結了幾點對sqlserver的最佳化

1、Sql查詢語句的最佳化,如:能使用外串連查詢出來的盡量別用內串連...,這些個就不廢話,如果我使用這個給他最佳化的話,那我就還得先瞭解他系統的業務什麼的,花的時間就比較多了,這樣不值。所以打算通過以下2點來最佳化:

2、為表添加索引,這個根據系統實際情況來

3、在系統測試通過後,將外鍵約束刪除(由於他是已經在啟動並執行系統,如果沒有使用外鍵來執行一些觸發器什麼的,這個肯定行得通的)

通過sql可以查詢出指定的表的外鍵名稱,eg.查詢db中SalesOrder表中的外鍵

select name

from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id
where f.parent_object_id=object_id(‘[dbo].[SalesOrder]‘)

這樣就可以看到SalesOrder表中的外鍵了(如果有)

但如果這樣的話,那我不得每個表去查詢,google了下找到一個解決方案,用一條sql語句搞定全部,如下:

--使用SYSREFERENCES--刪除外鍵DECLARE @SQL VARCHAR(100)DECLARE CUR_FK CURSOR LOCAL FORSELECT ‘ALTER TABLE [‘+ OBJECT_NAME(FKEYID) + ‘] drop constraint ‘ + OBJECT_NAME(CONSTID)  FROM  SYSREFERENCES--刪除所有外鍵OPEN CUR_FKFETCH CUR_FK INTO @SQLWHILE @@FETCH_STATUS =0BEGINEXEC(@SQL)FETCH CUR_FK INTO @SQLENDCLOSE CUR_FKDEALLOCATE CUR_FK

直接執行這個,會將db中所有的外鍵約束刪除

SQL Server 效能最佳化

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.