Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Czy w SQL Server powinienem utworzyć indeks dla kolumny tożsamości, czy jest on tworzony automatycznie?

create table test (Id int identity)
go
sp_help test
The object 'test' does not have any indexes, or you do not have permissions.

No constraints are defined on object 'test', or you do not have permissions.

Zgodnie z ogólną praktyką tworzysz unikalny indeks w kolumnie tożsamości, co przyspiesza wyszukiwanie.

Zwykle chcesz, aby Twoje kolumny tożsamości również były „indeksami klastrowymi” (Id int identity primary key jest notacją skrótu), co oznacza, że ​​tabela jest ułożona na dysku w tej samej kolejności, w jakiej znajduje się kolumna tożsamości. Optymalizuje to pod kątem wstawek, ponieważ wstawiana strona zwykle znajduje się w pamięci. W niektórych przypadkach, gdy bardzo często wykonujesz wyszukiwania zakresowe na innych danych w tabeli, możesz zamiast tego rozważyć grupowanie innych kolumn, ponieważ SQL Server zezwala na tylko jeden indeks klastrowany na tabelę.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaimplementowałbyś sekwencje w Microsoft SQL Server?

  2. wypełnienie pola tekstowego na drugim zaznaczeniu combobox zmienione w kaskadowym polu combobox w formularzu systemu Windows za pomocą c#

  3. Na liście wyboru można podać tylko jedno wyrażenie, gdy podzapytanie nie jest wprowadzone z opcją EXISTS

  4. Mimo to utworzyć wyzwalacz SQL Server DDL dla instrukcji SELECT?

  5. Jak ponownie zaszczepić tożsamość tabeli w SQL Server 2008 i bezpiecznie to wszystko cofnąć?