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

Sql оптимизация:Xml или ограничен низ

Вече има 4-та опция - параметри с таблични стойности , при което всъщност можете да подадете таблица със стойности в sproc като параметър и след това да го използвате, както обикновено бихте използвали променлива на таблица. Бих предпочел този подход пред XML (или подхода за анализ на CSV)

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

Редактиране:
Малко повече за TVP. За да предадете стойностите във вашия sproc, вие просто дефинирате SqlParameter (SqlDbType.Structured) - стойността на това може да бъде зададена на всеки източник IEnumerable, DataTable или DbDataReader. Така че вероятно вече имате списъка със стойности в списък/масив от някакъв вид - не е необходимо да правите нищо, за да го трансформирате в XML или CSV.

Мисля, че това също прави sproc по-ясен, по-прост и по-поддържан, осигурявайки по-естествен начин за постигане на крайния резултат. Един от основните моменти е, че SQL се представя най-добре при дейности, базирани на набор/нециклични/неманипулиращи низове.

Това не означава, че ще се представи чудесно с голям набор от предадени стойности. Но с по-малки набори (до ~1000) трябва да е добре.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ExecutenonQuery не работи

  2. Как да премахнете двойните кавички около текста, докато импортирате CSV файл?

  3. Сума от минути между множество периоди от време

  4. Оптимизация на SQL заявки:Най-добри практики за подобрена производителност

  5. Добавете номер на ред към набор от резултати на SQL заявка