Какой из них более эффективен? - PullRequest
2 голосов
/ 05 марта 2012

У меня есть таблица с большим объемом данных, и я хочу выполнить слишком много запросов для проверки существования конкретной строки.Если эта строка существует, увеличьте значение столбца query_count.У нас есть другой подход, чтобы сделать это, пожалуйста, скажите мне, какой из них лучше.

first: мы можем выбрать эту строку и проверить ее с помощью функции «Exists». Если эта строка существует, выполните команду update для увеличения столбца query_count.

Секунда: мы можем только выполнить команду обновления.если количество затронутых строк больше 0, то эта строка существует.

Ответы [ 3 ]

3 голосов
/ 05 марта 2012

Напишите оба запроса, проверьте оба с помощью SQL Profiler, который лучше работает в вашем сценарии.

1 голос
/ 05 марта 2012

Похоже, связано с этим постом, если вас беспокоят проблемы с выступлениями: Решения для вставки или обновления на SQL Server

0 голосов
/ 05 марта 2012

Я думаю, что оба запроса не совсем подходят.

  1. EXISTS используется только для подзапросов, где он очень эффективен. - Но не используется для автономных проверок.
  2. ОБНОВЛЕНИЕ действительно должно использоваться только для обновления данных, а не для проверок существования.

Я бы предложил запросить запрос TOP и использовать соответствующий индекс.

например.

SELECT TOP 1 {ID} FROM {TABLE} WHERE {YOUR CHECK HERE}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...