我試圖知道一個沒有聚集索引的表被視爲堆表,然後使用主鍵的表被稱爲'??'。 如果兩者都不存在,那麼它將被稱爲堆表。 主鍵會給邏輯順序,然後什麼聚集索引會給或他們都會做同樣的操作。 這不是學習,我只是想知道深潛,但每個人都有自己的版本。所以我回到我的社區專家....我已經做了很多閱讀,所以請考慮它作爲有效的問題沒有聚集索引的表被認爲是堆表?
1
A
回答
0
主鍵是一個約束,當您創建一個主鍵時,它實際上會在幕後創建一個聚集索引來強制執行主鍵約束。
簡而言之,A Primary實際上是一個表上的聚集索引。
是的,當表上沒有聚集的索引/主鍵定義時,它被稱爲HEAP。
創建一個沒有主鍵列的表並檢入SSMS,它將沒有該表的約束或索引。
CREATE TABLE Index_Test(ID INT NOT NULL)
GO
入住SSMS對象資源管理器:
現在創建這個ID列主鍵,看看會發生什麼:
ALTER TABLE Index_Test
ADD CONSTRAINT PK_ID PRIMARY KEY (ID)
GO
現在刷新SSMS表擴大所有節點看什麼有:
我只添加了主鍵約束,但它實際上爲我創建了一個集羣索引。
0
沒有聚集索引的表是「堆表」。 堆表沒有順序,行在插入時存儲。
具有聚簇索引的表是「聚簇表」。 按照集羣索引中的關鍵字段排列集羣表。
創建主鍵時,只有在沒有任何關鍵字時纔會創建聚集索引。也可以通過明確指定創建具有非聚集索引的主鍵。
一個表格可以有唯一一個集羣索引。 對於插入或更新行時的聚集索引,重新安排索引以維護索引中的順序。
對於堆表而言,插入或更新行時沒有任何安排,即它們存儲在SQL服務器可用於所述表的頁面中。 希望這能澄清你的一些疑問,隨時要求澄清。
相關問題
- 1. 插入記錄與聚集索引或沒有聚集索引
- 2. 在堆表上,非聚集索引用作指向行的指針是什麼?
- 3. 將聚集索引轉換爲非聚集索引?
- 4. 爲什麼這個查詢中沒有使用聚集索引?
- 5. 非聚集索引和非聚集索引的區別是什麼
- 6. 爲什麼在獨特的非聚集索引根頁面中沒有堆存在,而是存在於非唯一非聚簇索引的根頁面中?
- 7. 是否可以在DB2 V9.7上擁有沒有任何聚簇索引的表?
- 8. 插入聚簇索引表
- 9. 複合聚集索引和非聚集索引在sql server 2005
- 10. 類'System.DBNull'不能被索引,因爲它沒有默認屬性
- 11. 類'clsGetHeaderValue'不能被索引,因爲它沒有默認屬性
- 12. 我可以擁有沒有聚集索引的主鍵嗎?我也可以擁有多值聚簇索引嗎?
- 13. 主要索引與聚集索引
- 14. SQL Server聚集索引 - 索引問題
- 15. 查詢是否可以爲表使用多個非聚集索引?
- 16. 在SQL Server 2005中沒有聚集索引的原因
- 17. 創建一個沒有聚集索引的mysql主鍵?
- 18. 禁用所有非聚集索引
- 19. 獲取所有非聚集索引
- 20. SQL非聚集索引
- 21. 「聚集索引」和「句序」
- 22. 加入非聚集索引
- 23. 當Guid是聚集索引時,通過Guid搜索表更快嗎?
- 24. 找到沒有集羣索引但帶有表上的主鍵的表
- 25. 還有一個聚集(PK)索引時,非聚集索引性能是否會增加?
- 26. 應該如何連接通常將表創建爲索引組織表(聚集索引)?
- 27. 帶聚簇索引的文件表
- 28. 爲什麼在我的聚集索引上有掃描?
- 29. 我的索引表沒有排隊
- 30. 通過羣集或非聚集索引
嘗試http://dba.stackexchange.com/ –
我們可以將此問題遷移到堆棧交換 – mohan111
我已投票遷移 –