sql >> Database >  >> RDS >> Database

5 veel voorkomende SQL-query ontwerp fouten te vermijden ten koste van alles

Om SQL Server databases succesvol te laten verlopen, moet u enthousiast over queryontwerp zijn. Helaas hebben de meeste mensen geen seconde na te denken over het ontwerpproces. Als gevolg daarvan maken zij eenvoudige fouten die, hoewel gemakkelijk te vermijden, verstrekkende gevolgen hebben.

Om te beginnen, met een slecht geschreven vragen, dan kunt u niet garanderen dat gebruikers razendsnelle retrieval tijden. Uw servers zullen ook worden geplaagd door problemen vanaf de eerste dag. En in de huidige digitale wereld, zijn deze fouten die je niet kunt veroorloven om te maken. Maar, hoe doe je voorkomen dat deze fouten? Hier volgen enkele tips over hoe om te gaan over.

1. Niet in slagen om uw data model te beoordelen

Uw gegevens model bepaalt hoe gebruikers toegang tot de gegevens. Dus, denk je model door middel van direct vanaf het begin. Als je dat niet doet, zul je te maken krijgen met onhandelbare vragen en ingewikkelde code langs de lijn, en beide hebben een negatief effect op de prestaties. Een gemakkelijke manier om erachter te komen welke zoekopdrachten die nodig is om toegang tot de gegevens is om uit te drukken uw data model.

Of, beter nog, een data-modeling tool het voor u doen. Een print-out of modeling tool laat je zien wat je tegen. Je bent dus in een betere positie om de code te vereenvoudigen, de codering tijd, nauwkeurigheid verhogen en de prestaties te verbeteren.

2. Niet om je techniek te overwegen

Welke techniek gebruik je? Is het cursor logica, of-set op basis van de logica? Er is geen eenvoudig antwoord op deze specifieke vraag:alles hangt af van de prestaties die het beste past bij uw behoeften. Neem set-gebaseerde logica, bijvoorbeeld. Het ligt voor de hand liggende keuze voor toegang tot de database. Immers, een SQL Server is ontworpen voor het. Maar, cursor logica kan in sommige gevallen beter presteren dan op basis van logica. De sleutel is niet om een techniek te gebruiken wanneer de andere beter zou zijn.

3. Niet met behulp van oude codering technieken

Wanneer u gebruik maken van beproefde en geteste codering technieken, je zelden land in de problemen. Zelfs codering methoden die u geleerd van SQL Server 2005 kan nuttig vandaag bewijzen. Probeer de TRY ... CATCH foutafhandeling techniek te gebruiken in uw codering. De resultaten kunnen verrassen. Met behulp van Common Table Expressions voor hiërarchieën, of de Common Language Runtime (CLR) database engine kan ook laat je verrassen.

Als u hulp nodig borstelen op oude technieken, doe wat revisie en op zoek naar een aantal artikelen online. Er zijn genoeg die er zijn. Hier en hier zijn een paar van de SQL voorbeelden.

4. Niet te maken van peer review

Voor het inzetten van uw vraag plannen, moet je iemand anders herzien te hebben. De kans is groot dat andere mensen zullen zien wat je hebt gemist. Hun beoordelingen op uw indexen en de prestaties van query vaak u helpen om uw code verder te verbeteren. Ze kunnen ook een ding of twee van u leren in het proces, en vice-a-versa.

5. Niet in slagen om uw vragen te testen

Ontwikkelaars haat op testvoorschriften. Ten eerste is het streng. En ten tweede, de testomgeving (hardware en data) zelden overeen met de echte productieomgeving. Maar testen is een noodzakelijk en onvermijdelijk is, een deel van de codering. Dus, grondig te testen uw code, en waar mogelijk, proberen om de uiteindelijke productie-omgeving na te bootsen zo dicht mogelijk. Vergeet niet dat uw vragen kan goed presteren met een paar honderd platen, maar niet tegen miljoenen mensen in de uiteindelijke omgeving.

Conclusie

Queries bepalen de snelheid en prestaties van een SQL-database. Dus, probeer om veelgemaakte fouten te vermijden zoals het niet controleren van uw data model, of niet te onderzoeken welke techniek te gebruiken. Anderen zijn niet in slagen om de oude codering technieken te gebruiken, geen gebruik te maken van peer review mechanismen, en niet in slagen om uw vragen te testen.


  1. Oracle:hoe kom ik erachter of er een transactie in behandeling is?

  2. PL/SQL-opgeslagen procedures maken met parameters in Oracle Database?

  3. Hoe kun je in SQL groeperen in bereiken?

  4. SQL Kleiner dan of gelijk aan (=) Operator voor beginners