SQL Seznam tabulek bez primárního klíče – skript

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)
Rubrika: SQL Administrace Užitečné SQL skripty

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

Jmenuji se Honza Zedníček a působím jako data engineer freelancer. Během cca 10 let jsem zde shromáždil přes 600 IT case studies, průvodců, návodů a tipů určených zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Data Engineeringu, korporátních financí a reportingu. Zaměřuji se především na Microsoft technologie (on-prem i cloud) a různé synergické efekty v rámci jejich produktového portfolia pro dataře a finanční profesionály. Věnuji se také dalším platformám a významným hráčům z oblasti open source technologií. 🔥 Pokud vám tento článek pomohl, ocením referenci na vašem webu nebo zmínku v komunitě. A mám pro vás ještě tip: řešíte-li nějaký zapeklitý Excel problém, 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 *