Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy kolejność kolumn wpływa na wydajność w Microsoft SQL Server 2012?

Kolejność kolumn w tabeli będzie miała bardzo mały wpływ na wydajność w porównaniu z wpływem na wydajność projektu bazy danych (jednostki, atrybuty i relacje), projektu transakcji i projektu zapytania.

Aby stwierdzić, czy różnica nie jest nieistotna, naprawdę musisz skonfigurować kilka testów i porównać wyniki.

Zazwyczaj umieszczam klucz podstawowy jako pierwszą kolumnę, następnie klucze obce, a następnie klucze naturalne i często używane kolumny. Zazwyczaj kładę dłuższe sznurki pod koniec rzędu. Ale niekoniecznie jest to optymalizacja wydajności, ponieważ jest to preferencja stylu, której używam dla wygody.

Kolejność kolumn może mieć wpływ na rozmiar wiersza w SQL Server, gdy duża liczba kolumn w wierszu dopuszcza wartość NULL, a większość tych kolumn zawiera NULL. SQL Server (podobnie jak Oracle) ma optymalizację, w której nie jest zarezerwowane miejsce dla kolumn zawierających wartości NULL NA KOŃCU wiersza. Trochę miejsca jest zarezerwowane dla każdej kolumny w wierszu, aż do ostatniej niezerowej wartości w wierszu.

Wniosek z tego jest taki, że jeśli masz wiele kolumn dopuszczających wartość NULL, chcesz, aby kolumny, które najczęściej nie były NULL, były przed kolumnami, które najczęściej mają wartość NULL.

UWAGA:Należy pamiętać, że SQL Server najpierw porządkuje kolumny w tabeli według tego, czy kolumna ma stałą lub zmienną długość. Wszystkie kolumny o stałej długości są przechowywane jako pierwsze, a następnie wszystkie kolumny o zmiennej długości. W ramach tych zestawów kolumn (stałych i zmiennych) kolumny są przechowywane w kolejności, w jakiej zostały zdefiniowane.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ustaw wartość na NULL w MySQL

  2. Obliczanie odległości między kodami pocztowymi w PHP

  3. Ping do serwera MySQL przy użyciu JDBC

  4. Jak zmienić domyślną wartość kolumny za pomocą procedury?

  5. Automatycznie dodawaj litery przed polem automatycznego przyrostu