Database
 sql >> база данни >  >> RDS >> Database

5 много често срещани грешки в дизайна на SQL заявка, които трябва да избягвате на всяка цена

За да стартирате успешно базите данни на SQL Server, трябва да сте запалени по дизайна на заявките. За съжаление, повечето хора не обръщат внимание на процеса на проектиране. В резултат на това те правят прости грешки, които, макар и лесни за избягване, имат дълготрайни последици.

Като начало, с лошо написани заявки, не можете да гарантирате на потребителите светкавично бързо извличане. Вашите сървъри също ще бъдат измъчвани от проблеми от първия ден. А в днешния дигитален свят това са грешки, които не можете да си позволите. Но как да избегнете тези грешки? Ето съвети как да го направите.

1. Неуспешен преглед на вашия модел на данни

Вашият модел на данни определя как потребителите имат достъп до данни. Така че, обмислете модела си от самото начало. Ако не го направите, ще трябва да се справите с тромави заявки и сложен код надолу по линията и и двете влияят отрицателно върху производителността. Лесен начин да разберете кои заявки са необходими за достъп до данни е да отпечатате своя модел на данни.

Или още по-добре, накарайте инструмент за моделиране на данни да го направи вместо вас. Инструмент за разпечатване или моделиране ви позволява да видите с какво се сблъсквате. Следователно вие сте в по-добра позиция да опростите кода, да увеличите времето за кодиране, да увеличите точността и да подобрите производителността.

2. Невъзможност да вземете предвид вашата техниката

Каква техника използвате? Това логика на курсора ли е или логика, базирана на набори? Няма лесен отговор на този конкретен въпрос:всичко зависи от производителността, която най-добре отговаря на вашите нужди. Вземете логиката, базирана на множество, например. Това е очевидният избор за достъп до база данни. В крайна сметка SQL Server е предназначен за това. Но логиката на курсора може в някои случаи да превъзхожда базираната логика. Ключът е да не използвате една техника, когато другата би била по-добра.

3. Не се използват стари техники за коди

Когато използвате изпитани техники за кодиране, рядко попадате в беда. Дори методите за кодиране, които сте научили от SQL Server 2005, могат да се окажат полезни днес. Опитайте се да използвате техниката TRY…CATCH за обработка на грешки във вашето кодиране. Резултатите може да ви изненадат. Използването на общи изрази на таблици за йерархии или на базата данни на обща езикова среда за изпълнение (CLR) също може да ви изненада.

Ако имате нужда от помощ, за да освежите старите техники, направете малко ревизия и потърсете някои статии онлайн. Има много там. Ето и няколко примера за SQL.

4. Не се възползвате от партньорска проверката

Преди да разгърнете плановете си за заявка, трябва да накарате някой друг да го прегледа. Шансовете са други хора да видят какво сте пропуснали. Техните прегледи на вашите индекси и ефективност на заявките често ви помагат да подобрите допълнително своя код. Те също могат да научат нещо или две от вас в процеса и обратно.

5. Неуспешно тестване на вашите заявки

Разработчиците мразят да тестват код. Първо, това е строго. И второ, средата за тестване (хардуер и данни) рядко съвпада с реалната производствена среда. Но тестването е необходима и неизбежна част от кодирането. Така че, щателно тествайте кода си и където е възможно, опитайте се да имитирате крайната производствена среда възможно най-близо. Не забравяйте, че вашите заявки може да се представят добре с няколкостотин записа, но не и срещу милиони в крайната среда.

Заключение

Заявките определят скоростта и производителността на SQL база данни. Така че, опитайте се да избегнете често срещани грешки, като например да не преглеждате модела си на данни или да не прецените коя техника да използвате. Други не успяват да използват стари техники за кодиране, не се възползват от механизмите за партньорска проверка и не успяват да тестват вашите заявки.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GROUP BY срещу ORDER BY

  2. За последен път, НЕ, не можете да се доверите на IDENT_CURRENT()

  3. Трябва ли новите индексни колони да бъдат в ключа или да бъдат включени?

  4. SCD тип 2

  5. Пагинация с OFFSET / FETCH :По-добър начин