elke klant / gebruiker wil altijd een snelle reactie op hun data retrieval proces. We moeten dus een goede database ontwerpen die de beste prestaties levert tijdens datamanipulatie, wat resulteert in de beste prestaties van een applicatie. Er is echter geen eenvoudige manier om de beste prestaties te definiëren, maar we kunnen meerdere manieren kiezen om de prestaties van SQL-query te verbeteren, die onder verschillende categorieën valt, zoals het maken van indexen, het gebruik van joins en het herschrijven van een subquery om JOIN te gebruiken, enz.
als ontwikkelaar weten we dat elke SQL-query op meerdere manieren kan worden geschreven, maar we moeten best practices/ technieken volgen om betere query-prestaties te bereiken. Ik benadruk een aantal van hen hieronder:
1. Gebruik bestaat in plaats van IN om het bestaan van gegevens te controleren.
2. Vermijd * in SELECT statement. Geef de naam van de kolommen die u nodig hebt.
3. Kies het juiste gegevenstype. Bijvoorbeeld om strings op te slaan gebruik varchar in plaats van tekstgegevenstype. Gebruik tekstgegevenstype, wanneer u grote gegevens (meer dan 8000 tekens) moet opslaan.
4. Vermijd nchar en nvarchar indien mogelijk, aangezien beide gegevenstypen slechts dubbel geheugen als char en varchar nodig hebben.
5. Vermijd NULL In veld met vaste lengte. In het geval van de eis van NULL, gebruik variabele lengte (varchar) veld dat minder ruimte neemt Voor NULL.
6. Vermijd Het Hebben Van Clausule. Het hebben van clausule is vereist als u verder wenst om het resultaat van een aggregaties filteren.
7. Maak geclusterde en niet-geclusterde indexen.
8. Houd geclusterde index klein omdat de velden die worden gebruikt in geclusterde index ook kunnen worden gebruikt in niet-geclusterde index.
9. De meeste selectieve kolommen moeten het meest links worden geplaatst in de toonsoort van een niet-geclusterde index.
10. Laat ongebruikte indexen vallen.
11. Beter om indexen te maken op kolommen die integer waarden hebben in plaats van tekens. Integer waarden gebruiken minder overhead dan tekenwaarden.
12. Gebruik joins in plaats van sub-queries.
13. Gebruik WHERE expressions om de grootte van resultaattabellen die worden gemaakt met joins te beperken.
14. Gebruik TABLOCKX tijdens het invoegen in een tabel en TABLOCK tijdens het samenvoegen.
15. Gebruik met (NOLOCK) tijdens het opvragen van de gegevens uit een tabel.
16. Gebruik SET NOCOUNT ON en gebruik TRY-CATCH om deadlock conditie te voorkomen.
17. Vermijd Cursors omdat cursor zijn zeer traag in prestaties.
18. Gebruik tabel variabele in plaats van Temp tabel. Gebruik van Temp tabellen vereist interactie met TempDb database die een tijd nemen taak.
19. Gebruik indien mogelijk UNION ALL in plaats van UNION.
20. Gebruik schemanaam vóór de naam van SQL-objecten.
21. Gebruik de opgeslagen Procedure voor veelgebruikte gegevens en complexere queries.
22. Houd de transactie zo klein mogelijk omdat de transactie de gegevens van de verwerkingstabellen vergrendelt en kan resulteren in deadlocks.
23. Vermijd prefix ” sp_ ” met door de gebruiker gedefinieerde opgeslagen procedure naam omdat SQL server eerst de door de gebruiker gedefinieerde procedure in de hoofddatabase en daarna in de huidige sessiedatabase zoekt.
24. Vermijd het gebruik van niet-gecorreleerde scalaire Sub Query. Gebruik deze query als een aparte query in plaats van een deel van de hoofdquery en sla de uitvoer op in een variabele, waarnaar kan worden verwezen in de hoofdquery of later deel van de batch.
25. Vermijd Multi-statement Table Valued Functions (TVFs). Multi-statement TVFs zijn duurder dan inline TVFs.
Gelukkig Leren!