Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Miti dannosi e pervasivi sulle prestazioni di SQL Server

Tra i miei viaggi, le presentazioni e la moderazione di domande e risposte, parlo con molte persone di un'ampia varietà di problemi di prestazioni di SQL Server. Di recente, ho avuto alcune interazioni in cui le persone credono a cose che sono del tutto errate o che sono corrette solo in un insieme molto ristretto di casi d'uso. Eppure la loro ferma convinzione che queste cose siano universalmente vere è inquietante.

Quindi, ho pensato di iniziare una nuova serie per aiutare a reprimere alcuni di questi miti. Non per indicare le persone e dimostrare che hanno torto, ma per fermare la diffusione. Quando fanno queste affermazioni generali sul posto di lavoro, o su Twitter o nei forum, se non vengono controllati, possono "insegnare" agli utenti impressionabili o meno esperti.

Nota che non intendo dimostrare che queste cose mai vero, perché alcuni possono certamente essere veri in scenari isolati o inventati . Il mio scopo è semplicemente quello di dimostrare almeno un caso in cui non è vero; si spera che questo possa iniziare a cambiare queste mentalità ostinate.

Ecco alcuni dei "fatti" che mi sono stati raccontati di recente, in ordine sparso:

  • "Un indice cluster è sempre migliore di un indice non cluster"
  • "L'SQL dinamico ha rallentato la mia query"
  • "PIVOT è più veloce di SUM(CASE)"
  • "I NULL causano sempre terribili problemi di prestazioni"
  • "I piani di esecuzione sono inutili tranne che per gli indici mancanti"
  • "NOLOCK va bene perché molte persone lo usano"
  • "Il sovradimensionamento delle colonne varchar/nvarchar va bene"

Man mano che scrivo ogni post, aggiornerò questa pagina collegando l'elemento corrispondente nell'elenco sopra.

Hai dei miti sulle prestazioni che vengono spacciati come un fatto assoluto, ma sospetti (o forse addirittura sai) che non siano sempre veri? Fammi sapere nei commenti qui sotto, su Twitter o all'indirizzo [email protected].