久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQLSERVER中怎么忽略索引提示

147次閱讀
沒有評論

共計 1328 個字符,預計需要花費 4 分鐘才能閱讀完成。

今天就跟大家聊聊有關 SQLSERVER 中怎么忽略索引提示,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

當我們想讓某條查詢語句利用某個索引的時候,我們一般會在查詢語句里加索引提示,就像這樣

復制代碼 代碼如下:
SELECT id,name from TB with (index(IX_xttrace_bal)) where bal 100

當在生產環境里面,由于這個索引提示的原因,優化器一般不會再去考慮其他的索引,那有時候這個索引提示可能會導致查詢變慢

經過你的測試,發現確實是因為這個索引提示的關系導致查詢變慢,但是 SQL 服務器已經緩存了這條 SQL 語句的執行計劃,如果修改 SQL 語句的話可能會有影響

而且,可能不單只一條 SQL 語句用了索引提示,還有其他的 SQL 語句也用了索引提示,你不可能馬上去修改這些 SQL 語句的時候可以使用 SQLSERVER 里面的一個 trace flag

這個 trace flag 能忽略 SQL 語句里面的索引提示和存儲過程里面的索引提示

不需要修改 SQL 語句,就可以進行性能排查

運行下面腳本創建數據庫和相關索引

復制代碼 代碼如下:
USE masterGOIF DB_ID(Trace8602) IS NOT NULL DROP DATABASE Trace8602GOCREATE DATABASE Trace8602GOUSE Trace8602GOCREATE TABLE xttrace8602 (id INT IDENTITY(1, 1) PRIMARY KEY , bal INT , name VARCHAR(100) )GOCREATE NONCLUSTERED INDEX IX_xttrace8602_bal_name ON xttrace8602(bal,name)GOCREATE NONCLUSTERED INDEX IX_xttrace8602_bal ON xttrace8602(bal)GOINSERT INTO xttrace8602VALUES (RAND() * 786, cnblogs.com/lyhabc )GO 10000CREATE PROC uspFirstAS SELECT id , name FROM xttrace8602 TF WITH (INDEX ( IX_xttrace8602_bal) ) WHERE bal 100GO

現在執行下面代碼

復制代碼 代碼如下:
– 沒有使用跟蹤標致 EXEC uspFirst GO

復制代碼 代碼如下:
– 使用了跟蹤標志 DBCC TRACEON(8602,-1)GODBCC FREEPROCCACHEGOEXEC uspFirst GO

可以看到,打開 TRACEON(8602,-1) 跟蹤標志之后,SQLSERVER 忽略了索引提示,利用復合索引 IX_xttrace8602_bal_name 把數據查出來

而不需要額外的鍵查找

這個跟蹤標志不需要你修改你的 SQL 語句就可以讓 SQLSERVER 忽略索引提示

在使用這個 8602 跟蹤標志之前記得先在開發環境測試好,確認是否需要忽略索引提示,以便做成性能問題

看完上述內容,你們對 SQLSERVER 中怎么忽略索引提示有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-01發表,共計1328字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 临武县| 西城区| 镇坪县| 武功县| 泰来县| 阜阳市| 静安区| 龙门县| 安福县| 荆州市| 金华市| 图木舒克市| 绥中县| 镇巴县| 光山县| 双江| 丁青县| 铜山县| 山阴县| 怀远县| 邛崃市| 长治市| 石台县| 蕉岭县| 巴中市| 玉树县| 宁波市| 舟山市| 洪泽县| 池州市| 北宁市| 香港 | 会理县| 霍林郭勒市| 沙坪坝区| 桂东县| 瓦房店市| 谢通门县| 桐梓县| 常熟市| 娱乐|