sqlserver資料庫表索引查詢效率問題

時間 2021-12-23 11:38:47

1樓:匿名使用者

sqlserver的主鍵預設是聚集索引,如果你還需要查詢什麼資料,也可以建立非聚集索引,但是你要注意,非聚集索引需要佔額外的儲存空間,而且是用時間長了容易產生索引碎片。

所以比較好的索引建立準則是:用來做表連線的id列上鍵非聚集索引,真正用來查詢資料內容的列上建立聚集索引。

2樓:殳英光

你確定使用到索引了嗎?

你可以使用 執行計劃 來看看有沒有使用到索引

-------------------補充----------------------

首先:我不知道 sqlserver裡查詢oracle裡的某個表是怎麼個查法,這個我沒做過,所以不大清楚。

第二:雖然上面的我不清楚,但想必道理一樣,一個查詢語句在oracle中執行。你就把查詢語句直接放在oracle裡執行一下,看下執行計劃。

我以前需要檢視查詢語句是否用到了索引,因此才學會使用執行計劃的,下面是我的總結,希望對你有所幫助。

組合索引(concatenated index)

由多個列構成的索引,如create index idx_emp on emp(col1, col2, col3, ……),則我們稱idx_emp索引為組合索引。在組合索引中有一個重要的概念:引導列(leading column),在上面的例子中,col1列為引導列。

當我們進行查詢時可以使用」where col1 = ? 」,也可以使用」where col1 = ? and col2 = ?

」,這樣的限制條件都會使用索引,但是」where col2 = ? 」查詢就不會使用該索引。所以限制條件中包含先導列時,該限制條件才會使用該組合索引。

在關聯式資料庫中,表中建立主鍵就會自動生成一個索引。在oracle中,如果一個表有多個主鍵的話,是建一條索引應用到聯合主鍵所有列上,使用部分列不會應用到該主鍵索引,甚至,即使條件中包含了聯合主鍵所有列,但如果順序不對或者其中某一列上應用了函式,也不會應用到索引。

如何檢視查詢語句是否使用到了索引

在查詢語句前加上'set autotrace on'可以看到execution plan,可以從中分析使用使用到了索引。還可以用

set autotrace traceonly

set timing on

還可以額外的檢視執行語句所花費的時間。

3樓:匿名使用者

如果是聯合主鍵,則將經常查詢的內容設定為非聚簇索引,主要是欄位長的要設上啊,其實短的倒無所謂,還有就是你資料表的大小很有關啊,記錄超過10000條設定索引有意義,記錄太少了就沒意義了,最好給例項啊

4樓:匿名使用者

主鍵本身就是一個唯一索引,

你可以在關聯欄位上加一個索引

為什麼我在sqlserver的表中加了聚集索引之後查詢效率一點沒有變化 20

5樓:獨醉憶江南

這個資料量我認為影響不大,你試試後臺設定一個計時器,對比一下,肯定有變化,但是變化應該在幾毫秒以內吧

6樓:

你的時間是字串格式??

資料量著實太小,看不出區別也正常

sqlserver,表已新增索引,是否仍會隨著資料量不斷不斷增大而查詢越來越慢?

7樓:

無論哪一種資料庫,只要資料量不斷增大都會逐漸變慢,有時候資料到一個量級

速度會斷壁式**。

一般是直接從表查詢快。已經是索引列了。但是第一個查詢如果資料不存在還是要遍歷其他的表。這樣速度就大打折扣了。

如果能保證資料一定在指定表中就是第一個快了。

大體分為如下幾種情況會逆襲:

1、這個就是資料不存在,如果挨個遍歷表,速度可能不如使用檢視。

2、使用索引檢視技術,這個跟使用表查詢速度相差不大。

3、sqlserver是高階版本,可以發揮多cpu優勢,這個時候速度也相差不大。

4、索引碎片過多集中在的某三四個表以上,這時候效能都比較沮喪。

看如上,因為我這個是32核cpu,多並行幾個時間只是略多一點,如果單表查詢,那麼執行計劃就是一個分支。

Access資料庫和SQL Server資料庫有什麼區別

access是一種桌面資料庫,只適合資料量少的應用,在處理少量資料和單機訪問的資料庫時是很好的,效率也很高。但是它的同時訪問客戶端不能多於4個。access資料庫有一定的極限,如果資料達到100m左右,很容易造成伺服器iis假死,或者消耗掉伺服器的記憶體導致伺服器崩潰。sql server是基於伺服...

如何修改sqlserver預設建立資料庫的路徑

直接使用sql語句修改 use master goexec xp instance regwrite n hkey local machine n software microsoft mssqlserver mssqlserver n defaultdata reg sz,n f database...

SQL資料庫如何用SQL Server身份驗證登陸

倪萱皋燕 開啟企業管理器 右鍵sql server 屬性 安全性設定身份驗證方式 sql server和windows 不知道你問的是不是這個 無懷雨稅妝 這個需要你設定sqlserver,在企業管理器裡面,允許使用兩種方式登入,即密碼和windows驗證。然後再程式裡設定連線字串就可以了。如果不會...