Tabulce bez clusterovaného indexu se říká heap (hromada), protože je to jen hromada neuspořádaných dat. Naopak tabulka s clusterovaným indexem je lépe strukturovaná do balanced tree. Primární klíč je sám o sobě clusterovaným indexem a měla by ho mít každá tabulka.

Optimalizovaná tabulka nebo dotaz uspořádaná do balanced tree daleko lépe v rámci datového modelu performuje při dotazech. Kromě zmíněného primární klíč také hlídá unikátnost záznamů. Výše zmíněné je důležité pro správné fungování datového skladu.

Jak najít seznam tabulek bez primárního klíče?

K tomu využijeme systémových tabulek. Seznam indexů se ukrývá v tabulce sys.indexes a seznam tabulek zase v sys.tables. Obě tabulky lze propojit přes atribut object_id.

SELECT
   [Tab].[name]          AS [Tabulka]
FROM sys.tables [tab]
LEFT JOIN sys.indexes [ind]
   ON [tab].[object_id] = [ind].[object_id]
WHERE [ind].[is_primary_key] <> 1

Tabulka sys.indexes má atribut is_primary_key, takže po propojení si můžeme zobrazit tabulky, u kterých se nenachází v tabulce indexů žádný index typu primární klíč. Podobným způsobem lze zobrazi tabulky které mají/nemají CLUSTERED/NONCLUSTERED index a podobně.

Pokud by nás zajímalo v jakém stavu jsou naše indexy z pohledu fragmentace, tak tato indormace se zase nachází v tabulce sys.dm_db_index_physical_stats. Skript, který vyhledá fragmentované indexy a opravíá je najdete v článku – SQL Automatická oprava indexů v SQL Server + skript

5/5 - (1 vote)

Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako freelancer. Pracoval jsem dříve také jako BI developer, finanční controller a analytik. Vše pro společnosti z oblasti IT, bankovnictví, consultingu a výroby. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a občas neúspěšně odpálím pár balónků v golfu 🏌️

Již cca 10 let zapisuji na tento web různé návody určené zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Business intelligence, korporátních financí a reportingu.

🔥 Přihlašte se do naší Excel facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse »

Leave a Reply

Your email address will not be published. Required fields are marked *