Какой запрос быстрее: одно обновление с несколькими наборами или несколько обновлений с одним набором? - PullRequest
0 голосов
/ 20 декабря 2018

Предположим, у вас есть TestTable со столбцами: field1, field2, ... fieldn.

Какой запрос выполняется быстрее:

UPDATE TestTable set field1 = n1;


UPDATE TestTable set field2 = n2;

...

UPDATE TestTable set fieldn = nn;

или

UPDATE TestTable set 

field1 = n1,

field2 = n2,

....

fieldn = nn;

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Хороший вопрос.Попробуйте думать об этом так.

Каждая операция установки занимает незначительное времяза каждое ОБНОВЛЕНИЕ = n проверок

ОБНОВЛЕНИЕ n1 = nОБНОВЛЕНИЕ n2 = nОБНОВЛЕНИЕ n3 = n

Таким образом, по существу, для n количества обновлений вы проверяете n строк n раз, поэтому вы просматриваете n ^ 2 полных проверок.Однако, если вы используете функцию SINGLE UPDATE, вы проверяете только n строк ОДИН раз.

Поэтому второй вариант значительно лучше.

0 голосов
/ 20 декабря 2018

SQL основан на множестве.Каждый раз, когда вы можете работать с набором данных в одной операции, вам, как правило, лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...