最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQLSERVER中忽略索引提示

 更新時間:2014年11月11日 11:50:33   投稿:hebedich  
這篇文章主要介紹了SQLSERVER中如何忽略索引提示,需要的朋友可以參考下

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

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

當(dāng)在生產(chǎn)環(huán)境里面,由于這個索引提示的原因,優(yōu)化器一般不會再去考慮其他的索引,那有時候這個索引提示可能會導(dǎo)致查詢變慢

經(jīng)過你的測試,發(fā)現(xiàn)確實是因為這個索引提示的關(guān)系導(dǎo)致查詢變慢,但是SQL服務(wù)器已經(jīng)緩存了這條SQL語句的執(zhí)行計劃,如果修改SQL語句的話可能會有影響

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

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

不需要修改SQL語句,就可以進(jìn)行性能排查

運(yùn)行下面腳本創(chuàng)建數(shù)據(jù)庫和相關(guān)索引

復(fù)制代碼 代碼如下:

USE master
GO
IF DB_ID('Trace8602') IS NOT NULL
    DROP DATABASE Trace8602
GO
CREATE DATABASE Trace8602
GO
USE Trace8602
GO
CREATE TABLE xttrace8602
    (
      id INT IDENTITY(1, 1)
             PRIMARY KEY ,
      bal INT ,
      name VARCHAR(100)
    )
GO
CREATE NONCLUSTERED INDEX IX_xttrace8602_bal_name ON xttrace8602(bal,name)
GO
CREATE NONCLUSTERED INDEX IX_xttrace8602_bal ON xttrace8602(bal)
GO
INSERT  INTO xttrace8602
VALUES  ( RAND() * 786, 'cnblogs.com/lyhabc' )
GO 10000
CREATE PROC uspFirst
AS
    SELECT  id ,
            name
    FROM    xttrace8602 TF WITH ( INDEX ( IX_xttrace8602_bal ) )
    WHERE   bal < 100
GO

現(xiàn)在執(zhí)行下面代碼

復(fù)制代碼 代碼如下:

--沒有使用跟蹤標(biāo)致
EXEC uspFirst 
GO

復(fù)制代碼 代碼如下:

--使用了跟蹤標(biāo)志
DBCC TRACEON(8602,-1)
GO
DBCC FREEPROCCACHE
GO
EXEC uspFirst
GO

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

而不需要額外的鍵查找

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

在使用這個8602跟蹤標(biāo)志之前記得先在開發(fā)環(huán)境測試好,確認(rèn)是否需要忽略索引提示,以便做成性能問題

如有不對的地方,歡迎大家拍磚o(∩_∩)o

相關(guān)文章

  • 世界杯猜想活動的各類榜單的SQL語句小結(jié)

    世界杯猜想活動的各類榜單的SQL語句小結(jié)

    自己網(wǎng)站的世界杯猜想活動,整理了幾個排行榜。寫了半個小時的SQL,丟了多可惜,放在這里,反正是別人的地盤,不心疼。
    2010-07-07
  • select * from sp_who的解決方案

    select * from sp_who的解決方案

    sql server中提供很多有用的系統(tǒng)存儲過程,但是我們都知道,存儲過程的結(jié)果集是不能用select來過濾的,也就是說select * from sp_who where [dbname] = 'xxx';這樣的語句是執(zhí)行不過。下面介紹兩種方法來解決這個問題
    2009-04-04
  • 淺析SQL server 臨時表

    淺析SQL server 臨時表

    這篇文章主要介紹了SQL server 臨時表的創(chuàng)建查詢以及使用過程中應(yīng)注意的事項,需要的朋友可以參考下
    2014-08-08
  • SQL 獲取所有上級的實現(xiàn)方法

    SQL 獲取所有上級的實現(xiàn)方法

    這篇文章主要介紹了SQL 獲取所有上級的實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • SQL 截取字符串應(yīng)用代碼

    SQL 截取字符串應(yīng)用代碼

    字符串截取函數(shù),只限單字節(jié)字符使用(對于中文的截取時遇上奇數(shù)長度是會出現(xiàn)亂碼,需另行處理),本函數(shù)可截取字符串指定范圍內(nèi)的字符。
    2009-07-07
  • SQL SERVER數(shù)據(jù)轉(zhuǎn)換失敗的原因及解決方法

    SQL SERVER數(shù)據(jù)轉(zhuǎn)換失敗的原因及解決方法

    在使用 SQL Server 數(shù)據(jù)庫過程中,我們經(jīng)常會遇到數(shù)據(jù)轉(zhuǎn)換失敗的情況,當(dāng) SQL Server 在執(zhí)行查詢、插入或更新操作時,如果發(fā)現(xiàn)數(shù)據(jù)類型不匹配或無法進(jìn)行有效的轉(zhuǎn)換,就會拋出轉(zhuǎn)換失敗的錯誤,本文給大家介紹了SQL SERVER數(shù)據(jù)轉(zhuǎn)換失敗的原因及解決方法
    2024-09-09
  • SQL Server 服務(wù)器優(yōu)化技巧淺談

    SQL Server 服務(wù)器優(yōu)化技巧淺談

    數(shù)據(jù)文件和日志文件的操作會產(chǎn)生大量的I/O。在可能的條件下,日志文件應(yīng)該存放在一個與數(shù)據(jù)和索引所在的數(shù)據(jù)文件不同的硬盤上以分散I/O,同時還有利于數(shù)據(jù)庫的災(zāi)難恢復(fù)。
    2010-03-03
  • SQL多表連接查詢實例分析(詳細(xì)圖文)

    SQL多表連接查詢實例分析(詳細(xì)圖文)

    本文主要列舉兩張和三張表來講述多表連接查詢,需要的朋友可以參考下
    2013-09-09
  • SQL Server 向臨時表插入數(shù)據(jù)示例

    SQL Server 向臨時表插入數(shù)據(jù)示例

    SQL Server 向臨時表插入數(shù)據(jù),用臨時表和表變量代替游標(biāo)會極大的提高性能,下面有個示例,大家可以參考下
    2014-06-06
  • SQL?Server中操作XML數(shù)據(jù)的示例詳解

    SQL?Server中操作XML數(shù)據(jù)的示例詳解

    在關(guān)系數(shù)據(jù)庫的世界中,SQL?Server?一直以其強(qiáng)大的功能脫穎而出,在本文中,我將探討如何在?SQL?Server?中存儲、查詢和操作?XML?數(shù)據(jù),需要的可以參考下
    2024-12-12

最新評論

光山县| 开化县| 井冈山市| 鲁甸县| 华亭县| 黄平县| 揭西县| 台北县| 东海县| 和田县| 砀山县| 深圳市| 九龙县| 博客| 岳阳市| 三都| 台湾省| 定州市| 中牟县| 襄垣县| 噶尔县| 榆中县| 榆林市| 辽宁省| 高陵县| 同心县| 成都市| 揭东县| 四子王旗| 温宿县| 邵阳市| 武强县| 达日县| 大渡口区| 许昌县| 时尚| 广州市| 阿尔山市| 资中县| 天祝| 贺州市|