SQLSERVER之“sqlserver索引、視圖、存儲過程和觸發器的使用”

案例一:驗證索引的作用

 

1、首先創建一個數據量大的表,名稱爲“學生表”,分別有三列,學號,姓名和班級,如下圖所示,學號爲自動編號,班級爲默認值“一班”。

 640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


2、向表中插入大量數據,數據越多,驗證索引的效果越好。

使用語句完成:While 1>0  Insert into 學生表(姓名)  values(於美麗)

上面語句是一個死循環,除非強制結束,如果1大於0就會一直向表中插入姓名

如下圖所示:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

等待5分鐘左右,打開表的屬性,查看錶的行數,當前爲1032363,如下圖所示:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


3、使用語句查詢第900000行的數據,Select * from 學生表 Where 學號=900000




4、打開“sql server profiler ”工具進行跟蹤,如下圖所示:

打開sql server profiler ”工具查看跟蹤的信息,發現查詢時間很長,cpu工作了265毫秒,reads:讀了8649次,writes:寫了10次,duration:總計花費2336毫秒完成查詢。


爲了下面分析文件更準確,多執行幾次Select * from 學生表 Where 學號=900000

然後把跟蹤的結果保存在桌面上:



5、打開“數據庫引擎優化顧問”,添加跟蹤文件,進行分析,發現索引建議,需要建立索引。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

注意選擇benet數據庫中的學生表,然後點擊“開始分析”

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

索引類型爲clusterd(聚集索引),索引列爲“學號”。


6、按照“數據庫引擎優化顧問”的索引建議建立聚集索引,並且選擇“唯一”


7、再次執行Select * from 學生表Where 學號=900000

 

8、打開sql server profiler查看跟蹤的時間,發現查詢時間大幅提升,說明索引可以提高查詢速度。


發現總計時間爲1毫秒,幾乎忽略不計





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章