Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
abrashka Member Откуда: Сообщений: 517 |
День добрый! Помогите плиз, Существует запрос: if exists (select * from tblTest where c1=10 and c2=50) begin insert into tblTest ... update tblTest ... ... end Возможно ли изменить запрос, чтоб повысить производительность или так нормально? Иммется в виду именение if exists. Спасибо! |
28 авг 12, 00:07 [13073052] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37147 |
merge? |
28 авг 12, 00:19 [13073087] Ответить | Цитировать Сообщить модератору |
abrashka Member Откуда: Сообщений: 517 |
нет, вопрос не такой глубокий :) в теле IF-a может выполнятся обычный селект, не связанный с условием, например:if exists (select * from tblTest where c1=10 and c2=50) begin select * from tblXXX end |
28 авг 12, 01:05 [13073197] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37147 |
Это шутки такие? |
28 авг 12, 01:28 [13073220] Ответить | Цитировать Сообщить модератору |
abrashka Member Откуда: Сообщений: 517 |
Гавриленко Сергей Алексеевич, почему шутки? Я упростил до минимума задачу, интересует есть ли замена условию if exists(select * from tblTest where c1=10 and c2=50) Например if (select count(*) from tblTest where c1=10 and c2=50)>0 или для конкретного примера: if select c1*100+c2=1050 begin ... end Что будет работает продуктивней? Я понимаю, что это мелочь и на производительность системы не влияет, но хотелось бы узнать как "правильно" выполнить такое задание |
28 авг 12, 01:54 [13073250] Ответить | Цитировать Сообщить модератору |
locky Member Откуда: Харьков, Украина Сообщений: 62034 |
abrashka, при наличии нужных индексов вариант if exists (select * from tblTest where c1=10 and c2=50) будет наиболее производительным остальные предложенные вами варианты будут хуже |
28 авг 12, 02:25 [13073287] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |