簡體   English   中英

Sybase:非聚集索引中的列順序是否會影響插入性能?

[英]Sybase: Does the column order in a non-clustered index affect insert performance?

更具體地說(由於對該主題的一般回答可能是“是”):

在Sybase中,我們有一個包含大量數據的表。

列之一是“插入日期”(DATE,日期時間類型)。

表上的聚集索引以“ DATE”開頭。

問題:對於另一個非聚集索引,列的順序(更具體地說,“ DATE”是第一還是第二索引列)是否會影響插入查詢的性能?

假設其他所有條件都相等,例如第二個非聚集索引的順序不會影響選擇查詢的性能 (即使這樣,我也不關心這個問題的目的)。

表“所有頁”或“數據頁”上有哪些鎖定方案? (您可以通過選擇lockscheme('table_name'來查找。)使用數據頁鎖定方案,索引維護的(應用程序觀察到的)性能要好得多。

索引已排序。 插入時間取決於維護該訂單的成本。 如果您插入的行的索引值單調遞增,則索引將“在末尾”增長,並且性能會很好(對由於多個並發更新程序而導致的並發問題進行模運算)。 索引樹將不時需要重新平衡,但是我認為這是一個快速的操作。

如果插入順序與索引順序不同,則該索引必須將條目“插入中間”,這很可能導致頁面拆分(通過設置填充,因子)和“索引碎片”

無論如何,答案(一如既往)是進行一些實驗並測量經過的時間和IO活動。 您可能還需要查看optdiag輸出。

pjjH

我認為,這很大程度上取決於索引中的填充因子,而在很大程度上,取決於列的選擇性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM