案例一:驗證索引的作用
1、首先創建一個數據量大的表,名稱爲“學生表”,分別有三列,學號,姓名和班級,如下圖所示,學號爲自動編號,班級爲默認值“一班”。
2、向表中插入大量數據,數據越多,驗證索引的效果越好。
使用語句完成:While 1>0 Insert into 學生表(姓名) values(‘於美麗’)
上面語句是一個死循環,除非強制結束,如果1大於0就會一直向表中插入姓名
如下圖所示:
等待5分鐘左右,打開表的屬性,查看錶的行數,當前爲1032363,如下圖所示:
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、打開“數據庫引擎優化顧問”,添加跟蹤文件,進行分析,發現索引建議,需要建立索引。
注意選擇benet數據庫中的學生表,然後點擊“開始分析”
索引類型爲clusterd(聚集索引),索引列爲“學號”。
6、按照“數據庫引擎優化顧問”的索引建議建立聚集索引,並且選擇“唯一”
7、再次執行Select * from 學生表Where 學號=900000
8、打開sql server profiler查看跟蹤的時間,發現查詢時間大幅提升,說明索引可以提高查詢速度。
發現總計時間爲1毫秒,幾乎忽略不計