Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
IF NOT EXISTS и ISOLATION READ UNCOMMITTED
|
|||
|---|---|---|---|
|
#18+
Что оптимальнее использовать при написании запроса 1. IF NOT EXISTS( select * from where ..... ) BEGIN ... END или 2. select @VAR = 0 select @VAR = ... from table where ..... AT ISOLATION READ UNCOMMITTED IF VAR = 0 BEGIN .... END Блокируются ли в первом случае строки таблицы? Заранее спасибо за помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 16:13 |
|
||
|
IF NOT EXISTS и ISOLATION READ UNCOMMITTED
|
|||
|---|---|---|---|
|
#18+
akula84 пишет: > Что оптимальнее использовать при написании запроса > IF NOT EXISTS( > select * from where ..... > ) или > select @VAR = 0 > select @VAR = ... > from table > where ..... > AT ISOLATION READ UNCOMMITTED Если убрать во втором случае AT ISOLATION READ UNCOMMITTED (или поставить в первом), то будет одно и то же. NOT EXISTS - короче, неправда ли ? А с и без AT ISOLATION READ UNCOMMITTED - это немного разные вещи. Совет: не используйте READ UNCOMMITTED в ASE. > Блокируются ли в первом случае строки таблицы? Так они и во втором блокируются. Только такой блокировкой, которая совместима с XLOCK. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 18:49 |
|
||
|
IF NOT EXISTS и ISOLATION READ UNCOMMITTED
|
|||
|---|---|---|---|
|
#18+
akula84Что оптимальнее использовать при написании запроса 1. IF NOT EXISTS( select * from where ..... ) BEGIN ... END или 2. select @VAR = 0 select @VAR = ... from table where ..... AT ISOLATION READ UNCOMMITTED IF VAR = 0 BEGIN .... END Блокируются ли в первом случае строки таблицы? Заранее спасибо за помощь 1. Это разные запросы и будучи запущены одновременно могут выдать разные результаты. см. уровни изоляции. 2. Блокировка чтения накладывается в обоих случаях. Отлиичие только в том, что во втором случае она наложиться при наличии экслюзивной блокировки, а в первом будет ждать окончания транзакции наловшей эксклюзиную. 3. Если выборка возвращает более одной записи, то второй запрос обратится к большему количеству данных, а соответсвенно будет работать медленнеее. Начиная с версии 12.5.4 эта "ошибка" исправлена, и производительности равны. В более младших версиях эту "ошибку" можно решить поставив перед вторым запросом set rowcount 1, а после него set rowcount 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2007, 13:19 |
|
||
|
IF NOT EXISTS и ISOLATION READ UNCOMMITTED
|
|||
|---|---|---|---|
|
#18+
MasterZiv Если убрать во втором случае AT ISOLATION READ UNCOMMITTED (или поставить в первом), то будет одно и то же. NOT EXISTS - короче, неправда ли ? Код: plaintext ASE 12.5.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2007, 13:26 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34572663&tid=2012060]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 357ms |

| 0 / 0 |
