自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server索引使用的其他注意事項(xiàng)

數(shù)據(jù)庫 SQL Server
以下的文章主要描述的是SQL Server索引在實(shí)際操作中其他的注意事項(xiàng),以下就是對(duì)其具體方案的描述,望在你今后的學(xué)習(xí)中會(huì)對(duì)你有所幫助。

以下的文章主要向大家講述的是SQL Server索引在實(shí)際操作中其他的注意事項(xiàng),“水可載舟,亦可覆舟”,SQL Server數(shù)據(jù)庫的索引也一樣。索引有助于提高檢索性能,但過多或不當(dāng)?shù)乃饕矔?huì)導(dǎo)致系統(tǒng)低效。

因?yàn)橛脩粼诒碇忻考舆M(jìn)一個(gè)索引,數(shù)據(jù)庫就要做更多的工作。過多的索引甚至?xí)?dǎo)致索引碎片。

所以說,我們要建立一個(gè)“適當(dāng)”的索引體系,特別是對(duì)聚合SQL Server索引的創(chuàng)建,更應(yīng)精益求精,以使您的數(shù)據(jù)庫能得到高性能的發(fā)揮。

當(dāng)然,在實(shí)踐中,作為一個(gè)盡職的數(shù)據(jù)庫管理員,您還要多測(cè)試一些方案,找出哪種方案效率最高、最為有效。

改善SQL語句

很多人不知道SQL語句在SQL SERVER中是如何執(zhí)行的,他們擔(dān)心自己所寫的SQL語句會(huì)被SQL SERVER誤解。比如:

  1. select * from table1 where name=''zhangsan'' and tID > 10000和執(zhí)行:  
  2. select * from table1 where tID > 10000 and name=''zhangsan''  

一些人不知道以上兩條語句的執(zhí)行效率是否一樣,因?yàn)槿绻?jiǎn)單的從語句先后上看,這兩個(gè)語句的確是不一樣,如果tID是一個(gè)聚合SQL Server索引,那么后一句僅僅從表的10000條以后的記錄中查找就行了;而前一句則要先從全表中查找看有幾個(gè)name=''zhangsan''的,而后再根據(jù)限制條件條件tID>10000來提出查詢結(jié)果。

事實(shí)上,這樣的擔(dān)心是不必要的。SQL SERVER中有一個(gè)“查詢分析優(yōu)化器”,它可以計(jì)算出where子句中的搜索條件并確定哪個(gè)索引能縮小表掃描的搜索空間,也就是說,它能實(shí)現(xiàn)自動(dòng)優(yōu)化。

雖然查詢優(yōu)化器可以根據(jù)where子句自動(dòng)的進(jìn)行查詢優(yōu)化,但大家仍然有必要了解一下“查詢優(yōu)化器”的工作原理,如非這樣,有時(shí)查詢優(yōu)化器就會(huì)不按照您的本意進(jìn)行快速查詢。

在查詢分析階段,查詢優(yōu)化器查看查詢的每個(gè)階段并決定限制需要掃描的數(shù)據(jù)量是否有用。如果一個(gè)階段可以被用作一個(gè)掃描參數(shù)(SARG),那么就稱之為可優(yōu)化的,并且可以利用SQL Server索引快速獲得所需數(shù)據(jù)。

SARG的定義:用于限制搜索的一個(gè)操作,因?yàn)樗ǔJ侵敢粋€(gè)特定的匹配,一個(gè)值得范圍內(nèi)的匹配或者兩個(gè)以上條件的AND連接。形式如下:

列名 操作符 <常數(shù) 或 變量>

<常數(shù) 或 變量> 操作符列名列名可以出現(xiàn)在操作符的一邊,而常數(shù)或變量出現(xiàn)在操作符的另一邊。如:

Name=’張三’

價(jià)格>5000

5000<價(jià)格

Name=’張三’ and 價(jià)格>5000如果一個(gè)表達(dá)式不能滿足SARG的形式,那它就無法限制搜索的范圍了,也就是SQL SERVER必須對(duì)每一行都判斷它是否滿足WHERE子句中的所有條件。所以一個(gè)SQL Server索引對(duì)于不滿足SARG形式的表達(dá)式來說是無用的。

【編輯推薦】

  1. 用SQL Server索引密度對(duì)行數(shù)進(jìn)行評(píng)估
  2. 關(guān)于SQL Server索引密度的知識(shí)
  3. SQL Server索引直方圖的內(nèi)容描述
  4. SQL Server評(píng)價(jià)索引之有效性
  5. SQL Server索引選擇的引用與建議
責(zé)任編輯:佚名 來源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2010-07-19 14:37:20

SQL Server

2010-07-23 10:09:41

SQL Server

2010-07-26 10:59:59

SQL Server游

2013-02-26 14:07:52

SQL Server虛擬化

2011-08-02 13:08:06

Oracle索引

2010-06-29 17:32:13

SQL Server鎖

2010-07-15 13:38:35

2010-05-11 11:03:41

Mysql索引

2011-04-11 16:23:57

2010-11-26 16:27:01

MySQL使用變量

2010-10-26 17:28:15

創(chuàng)建Oracle索引

2010-07-16 14:01:22

安裝SQL Serve

2011-08-25 15:54:30

SQL Serverbit字段類型

2011-07-28 17:29:22

HBaseShell

2012-03-12 16:46:22

NoSQL數(shù)據(jù)庫

2018-11-16 15:15:18

SQL Server數(shù)據(jù)庫程序員

2009-07-01 02:29:24

臨時(shí)表T-SQL

2019-11-27 10:46:06

sqlserver數(shù)據(jù)庫sql

2010-01-21 11:30:10

2011-05-26 11:22:04

SEO
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)