sql >> Database >  >> RDS >> Sqlserver

SQL-Server Performance:Wat is sneller, een opgeslagen procedure of een view?

Opgeslagen procedures (SP's) en SQL-weergaven zijn verschillende "beesten" zoals meerdere keren in dit bericht vermeld.

Als we enkele [meestal kleine, met uitzondering van randgevallen] prestatieoverwegingen uitsluiten die verband houden met het cachen van het queryplan, de tijd die gepaard gaat met het binden aan een opgeslagen procedure en dergelijke, de twee benaderingen zijn over het algemeen gelijkwaardig, prestatie- wijs. Maar...

Een weergave is beperkt tot alles wat kan worden uitgedrukt in een enkele SELECT-instructie (nou ja, mogelijk met CTE's en een paar andere trucs), maar in het algemeen is een weergave gekoppeld aan declaratieve vormen van query's . Een opgeslagen procedure daarentegen kan verschillende constructies van het procedurele type . gebruiken (evenals declaratieve), en als gevolg daarvan kan men met behulp van SP's met de hand een manier bedenken om een ​​bepaalde vraag op te lossen die efficiënter kan zijn dan wat de query-optimizer van SQL-Server mogelijk heeft gedaan (op basis van een enkele declaratieve query). In deze gevallen kan een SP veel sneller zijn (maar pas op... de optimizer is behoorlijk slim en er is niet veel voor nodig om een ​​SP veel langzamer te maken dan de equivalente weergave.)

Afgezien van deze prestatieoverwegingen zijn de DV's veelzijdiger en laten ze een breder scala aan vragen en acties toe dan de meningen.



  1. Is het echt beter om genormaliseerde tabellen te gebruiken?

  2. Hoe converteer ik een geheel getal naar een string als onderdeel van een PostgreSQL-query?

  3. Databasecorruptie met MariaDB:Tabel bestaat niet in engine

  4. Oracle inconsistent prestatiegedrag van query