Bu gönderiden ilham alındı: https://twitter.com/#!/SQLChicken/status/102930436795285505
Yığınlar: Bir dizin yapısı olarak mı değerlendiriliyorlar yoksa kesinlikle dizinsiz bir tablo yapısı mı?
Bu gönderiden ilham alındı: https://twitter.com/#!/SQLChicken/status/102930436795285505
Yığınlar: Bir dizin yapısı olarak mı değerlendiriliyorlar yoksa kesinlikle dizinsiz bir tablo yapısı mı?
Yanıtlar:
MSDN'den - Tablo ve dizin organizasyonu :
"SQL Server tabloları, veri sayfalarını bir bölüm içinde düzenlemek için iki yöntemden birini kullanır:
Veri satırları, kümelenmiş dizin anahtarına göre sırayla saklanır. Kümelenmiş dizin, kümelenmiş dizin anahtar değerlerine göre satırların hızlı bir şekilde alınmasını destekleyen bir B-ağacı dizin yapısı olarak uygulanır. Yaprak düzeyindeki veri sayfaları da dahil olmak üzere, dizinin her düzeyindeki sayfalar çift bağlantılı bir listeye bağlanır. Bununla birlikte, bir seviyeden diğerine navigasyon, anahtar değerler kullanılarak gerçekleştirilir.
Veri satırları belirli bir sırada depolanmaz ve veri sayfalarının sırası için özel bir sıra yoktur. Veri sayfaları bağlantılı bir listede bağlı değil. "
Yığınlar - SQL Server Optimizasyonu :
"Bir yığın tablosu, tanım gereği, kümelenmiş dizin içermeyen bir tablodur. Yığın tabanlı tablonun farklı sayfaları, disk üzerinde bitişik olmayan farklı alanlar kaplar ve hiçbir şekilde birbirine bağlı değildir."
Bunun yerine - Kümelenmiş Dizin Yapıları : "SQL Server'da, dizinler B-ağaçları olarak düzenlenir. Bir dizin B-ağacındaki her sayfaya dizin düğümü denir. B-ağacının üst düğümü kök düğüm olarak adlandırılır. Dizindeki düğümlerin alt düzeyine yaprak düğümleri denir Kök ve yaprak düğümleri arasındaki herhangi bir dizin düzeyi topluca ara düzeyler olarak bilinir Kümelenmiş bir dizinde, yaprak düğümleri alttaki tablonun veri sayfalarını içerir . ara düzey düğümleri, dizin satırlarını tutan dizin sayfaları içerir.Her dizin satırı, B ağacındaki bir ara düzey sayfaya veya bir dizinin yaprak düzeyindeki bir veri satırına bir anahtar değeri ve bir işaretçi içerir. dizin çift bağlantılı bir listede birbirine bağlı. "
Diğer referanslar:
Bir dizin , satırlara veri sırası olduğunu gösterir. Bir yığının bu tür bir siparişle oluşturulmadığı ve bir siparişi sürdürmediği göz önüne alındığında, bu sadece tablo verilerini saklama yöntemidir.
Bir yığın belirtmek için birkaç örnek (örneğin, dm_db_index_physical_stats ) vardır, 0 dizin indeksini girmelisiniz. Bu, az önce söylediğimle çelişiyor gibi görünse de, bu API ve onun basitleştirmek için sadece sihirli bir değer olduğunu düşünüyorum kullanımı; başka bir şey değil.
Kümelenmiş dizin içermeyen tablo yapısı.