Преимущества использования оператора Case перед оператором If в хранимой процедуре? - PullRequest
1 голос
/ 04 октября 2008

Привет, есть ли плюсы / минусы, касающиеся скорости выполнения хранимой процедуры при использовании оператора IF или при выборе вместо него оператора CASE?

Ответы [ 2 ]

2 голосов
/ 04 октября 2008

Не беспокойтесь о разнице в скорости между делом и оператором IF. Поскольку вы имеете дело с базой данных, время, необходимое для записи или чтения с диска, будет меньше времени, которое требуется ЦП для ветвления через IF или Case. Вместо этого вам следует сосредоточиться на том, что делает ваш код более читабельным и обслуживаемым.

2 голосов
/ 04 октября 2008

Я стараюсь не использовать IF s, если я могу избежать этого, потому что они не являются транзакционными, то есть вы, как правило, не гарантируете, что условие IF все еще будет действовать в блоке BEGIN... END IF.

Я предполагаю, что вы имеете в виду, например, использование CASE операторов внутри SQL SELECT. Если использование предназначено, чтобы избежать IF, тогда, конечно, сделайте это.

Золотое правило SQL: позвольте серверу выяснить, КАК что-то делать, скажите серверу, чего вы ХОТИТЕ .

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