sql >> Databáze >  >> RDS >> Mysql

Ovlivňuje řazení sloupců výkon v Microsoft SQL Server 2012?

Pořadí sloupců v tabulce bude mít velmi malý dopad na výkon ve srovnání s dopadem na výkon návrhu vaší databáze (entit, atributů a vztahů), návrhu transakce a návrhu dotazu.

Abyste zjistili, zda je rozdíl nezanedbatelný, budete opravdu muset nastavit nějaké testy a porovnat výsledky.

Obvykle vkládám primární klíč jako první sloupec, poté cizí klíč (klíče) a poté přirozené klíče a často používané sloupce. Obvykle dávám delší provázky ke konci řady. Nejedná se však nutně o optimalizaci výkonu, jako spíše o preferenci stylu, kterou používám pro pohodlí.

Pořadí sloupců může mít vliv na velikost řádku na SQL Server, když velký počet sloupců v řádku má hodnotu Null a většina těchto sloupců obsahuje NULL. SQL Server (jako Oracle) má optimalizaci, kde není vyhrazeno žádné místo pro sloupce, které obsahují hodnoty NULL NA KONCI řádku. Pro každý sloupec v řádku je vyhrazeno určité místo až do poslední hodnoty v řádku, která není NULL.

Z toho plyne, že pokud máte mnoho sloupců s možnou hodnotou NULL, chcete, aby sloupce, které nejčastěji nemají hodnotu NULL, před sloupci, které jsou nejčastěji NULL.

POZNÁMKA:Mějte na paměti, že SQL Server nejprve seřadí sloupce v tabulce podle toho, zda má sloupec pevnou délku nebo proměnnou délku. Nejprve se uloží všechny sloupce s pevnou délkou, poté následují všechny sloupce s proměnnou délkou. V rámci těchto sad sloupců (pevných a proměnných) jsou sloupce uloženy v pořadí, v jakém jsou definovány.



  1. Halloweenský problém – část 4

  2. Vytvořte úlohu serveru SQL Server automaticky

  3. Jak vytvořit tabulku založenou na sadě výsledků JDBC

  4. Jak vyřešit InnoDB:Nelze uzamknout chybu mysql ./ibdata1?