MSSQL2008R2綠色獨立運行版是一款非常不錯的數(shù)據(jù)庫管理軟件,該軟件為廣大用戶提供了非常完整的企業(yè)級技術與工具,MSSQL2008R2綠色獨立運行版可以為任何規(guī)模的應用提供完備的信息平臺,支持大規(guī)模的數(shù)據(jù)中心與數(shù)據(jù)倉庫。
功能介紹
1、新的FORCESCAN查詢提示
任何DBA在進行查詢優(yōu)化的時候,都知道scan和seek之間的區(qū)別。Scan是指讀取表中每一行數(shù)據(jù)然后返回查詢;而seek使用表的葉數(shù)據(jù)來找到能夠回答相同查詢的行。當查詢結果僅涉及到表數(shù)據(jù)的10-15%時,通常使用seek方式會比較好,當涉及到大量數(shù)據(jù)時則使用scan,它會讀取整個表然后送到內(nèi)存中然后返回結果,無需分析索引。
1.新的FORCESCAN提示功能就和字面上的意思一樣,可以確保查詢優(yōu)化器在給定的操作中不使用seek,而強制使用scan。需要提醒的是,F(xiàn)ORCESCAN需要謹慎使用,否則會造成查詢性能降低的后果:
2.SELECT user_type FROM user_table WITH (FORCESCAN)
上面的語句假定user_type列相對來說并不是獨一無二的,也就是所謂的“低基數(shù)”列,這時候使用FORCESCAN就和使用索引沒有太大差別。
3.隨著SQL Server查詢優(yōu)化器變得越來越強大,我在自己的程序中已經(jīng)很少會用到這種提示功能,但是FORCESCAN還是有它的用武之處。強制表掃描是對系統(tǒng)進行拷問測試的一種方法,F(xiàn)ORCESCAN在這方面將會發(fā)揮積極的作用。
其他內(nèi)容
1.FORCESEEK和FORCESCAN二者是截然相反的,它會強制數(shù)據(jù)庫使用seek。在之前的版本中也存在這一功能,但是在SQL Server 2008 R2 SP1中,DBA可以使用FORCESEEK來指定需要seek的索引或者列:
2.SELECT user_name FROM user_table
3.WITH (FORCESEEK(user_table_index(user_name))
4.如果你能夠想到的,在user_table上有一個索引叫做user_table_index,它將user_name作為其中的一列。這會強制查詢優(yōu)化器使用這個索引和列來進行seek。你還可以seek多個列,但是這需要按照它們在索引中的位置順序來指明出來。
5.一個可能的應用場景:你創(chuàng)建了一個系統(tǒng),其中生成索引后你想要手動進行詳細的說明,或者是用存儲過程以及內(nèi)嵌SQL語句來自動生成。