בשיחה עם clickone ניסינו לעשות סדר בדברים:
מפתח ראשי זה אכן לא כינוי לclustered index, וייתכן מפתח ראשי שאיננו אינדקס ולהפך
בברירת מחדל מפתח ראשי הוא clustered index, ומפתח ראשי יכול להיות עמודה או כמה מכל סוג של נתונים
המשמעות של מפתח ראשי ללא index היא סתם עמודה נוספת עם אילוץ יחודיות - בזבוז הן במקום והן בביצועים.
המשמעות של clustered index היא הפיכת כל הטבלה מסוג heap לסוג clustered. הנתון עצמו של האינדקס כמעט לא תופס מקום כיון שהוא בלא"ה חלק מסידור הטבלה, מצד המקום הצדק כנראה עם ארכיטקט.
בclustered index הסידור של השורות פיזית הוא לפי באינדקס.
ללא הנ"ל הטבלה איננה מסודרת כלל (שמה heap table), ויש לזה יתרונות גם במהירות לפעמים - אז הכלל שאין לזה עלות לא נכון בכל מקרה.
מקורות:
http://stackoverflow.com/questions/15051869/relationship-of-primary-key-and-clustered-index
https://en.wikipedia.org/wiki/Unique_key
https://docs.microsoft.com/en-us/sql/relational-databases/indexes/heaps-tables-without-clustered-indexes
https://www.mssqltips.com/sqlservertip/1254/clustered-tables-vs-heap-tables/
http://dba.stackexchange.com/questions/28370/what-are-valid-usage-scenarios-for-heap-tables
עברית
http://www.ildba.co.il/indexes-in-sql-server/
http://blogs.microsoft.co.il/gerireshef/2010/11/29/אינדקסים-וספריית-אוניברסיטת-חיפה/
http://blogs.microsoft.co.il/gerireshef/2014/03/20/lookup-לטבלה-heapclustered-index/
פורסם במקור בפורום CODE613 ב26/03/2017 09:05 (+03:00)