在IDS中??SE?SQL Server,Oracle,MySQL和其他人自動將新行插入數據文件中的相應位置以維護集羣。將新行添加到具有聚簇索引的表時是否保留了行的物理順序?
1
A
回答
1
Informix處理聚簇索引的方式是重建表(和索引),以便索引創建時表中的數據處於正確的物理順序。此後,行被插入哪裏看起來最合適,這不會繼續保持聚集順序。通過Informix Dynamic Server的11.70在2010年
的;這(在1985年的Informix-SQL 1.10)從1986年以來的情況下,由於Informix的SQL 2.10(我沒有爲仍然手動可能爲2.00)聲明:
ALTER INDEX idxname TO NOT CLUSTERED;
總是很快。該補充聲明:
ALTER INDEX idxname TO CLUSTERED;
往往是一個緩慢的過程,涉及創建表和一個完整的新版本刪除舊錶和索引之前的指數。
ISQL 1.10手冊沒有ALTER INDEX; 2.10手冊確實有ALTER INDEX。
1
我無法回答IDS,但我可以爲你提到的一些。
它取決於平臺:它使用頁面,它是否將數據從索引樹中分離出來?
一般來說,行的物理排序並不維護:只有邏輯順序可以
原因:一個固定大小的頁面上,你可以不「騰出空間」(波希米亞建議)
所以如果你擴展成行(例如添加更多的數據到LONG VARCHAR)或插入(行之間id IN (2,4)
ID=3
)之間那麼下面的一個發生
- 行取出一個新的頁面婆(每頁)半成品
- 行溢出(例如SQL服務器2005+)
- 頁面被分割
這導致邏輯/索引碎片和減少數據密度:這就是爲什麼我們的索引維護刪除這個。
相關問題
- 1. 聚簇索引是否真的改變了記錄的物理順序?
- 2. 將主鍵添加到具有現有聚簇索引的表中
- 3. 具有非聚簇索引但沒有聚簇索引
- 4. 應將主鍵聚簇索引列添加到非聚簇索引中?
- 5. 具有聚簇索引的表的記錄是否在羣集關鍵字上物理排序?
- 6. U-SQL表中的聚簇索引是否影響並行性?
- 7. 在Pandas DataFrame中添加行保留索引順序
- 8. 將已排序的數據插入到具有聚簇索引的表中
- 9. 聚簇索引和非聚簇索引
- 10. 瞭解聚簇索引
- 11. 如何執行非聚簇索引查找而不是聚簇索引掃描
- 12. 如何大容量並行複製到具有聚簇索引的表中?
- 13. SELECT查詢是否總是以相同的順序返回行?帶聚簇索引的表
- 14. 在已有聚簇索引的字段上放置非聚簇索引時,性能是否會提高?
- 15. 聚簇索引
- 16. 保存B +樹的聚簇索引和非聚簇索引的位置?
- 17. 在臨時表上添加聚簇索引以提高性能
- 18. 插入聚簇索引表
- 19. 非主鍵列上的聚簇索引或非聚簇索引?
- 20. SQL服務器行不聚簇索引
- 21. 並行SQL Server聚簇索引創建
- 22. 是否在mysql中實現了聚簇索引?
- 23. SQL Server 2005聚簇索引刪除運行時間很長,沒有非聚簇索引存在
- 24. 混淆了聚簇索引和非聚簇索引。包含5個疑問
- 25. 聚簇索引的列順序如何影響性能
- 26. 保留的順序進行查詢時
- 27. 帶聚簇索引的文件表
- 28. 將非聚簇索引添加到少於1000行但頻繁訪問的表中會提高性能?
- 29. 是否可以在DB2 V9.7上擁有沒有任何聚簇索引的表?
- 30. 聚簇索引掃描而不是聚簇索引尋求左連接
「...插入哪裏似乎最合適......」意思就像在EOF?..我不再使用2.10,我達到4.10(DOS),並在虛擬PC 2007下工作正常。卸載表在我的SELECT語句中創建一個ORDER BY並重新創建表和索引將等同於創建一個聚集索引?我每七天做一次這樣的操作,並且可以在兩萬次之前運行良好,但可以想象需要花費很長時間才能完成500,000次。 – 2011-06-11 22:11:31
我的目標是當我查詢我的20,000個客戶之一時,我想要快速響應查找所有查詢的客戶交易,這些交易位於子表中。如果客戶交易分散在整個表中,則返回它們需要更長的時間,而通過customer.id將這些交易集中在一起。 – 2011-06-11 22:20:48
@Frank:'意思就像在EOF';如果你還沒有刪除任何東西,那麼最後是。如果您刪除了行,那麼這些插槽可能會被重新使用。是的,使用ORDER BY和LOAD進行UNLOAD與創建聚集索引基本相同 - 儘管系統上的工作負載更高,因爲聚集索引不必在卸載時將所有數據傳輸到客戶端,並返回到加載服務器。 – 2011-06-11 22:39:46