Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) xp - стандартные процедуры  _1sp__1SJOURN_TLock (число прочтений - 3922 )
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
xp - стандартные процедуры  _1sp__1SJOURN_TLock
05. Ноября 2008 :: 09:24
Печать  
Код
Выбрать все
Create procedure _1sp__1SJOURN_TLock AS
set nocount on declare @i integer select @i=1 from _1SJOURN(TABLOCK HOLDLOCK) where 0=1 


Помогите разобраться где я ошибаюся ( глючу )
1.Если предположить что оптимизатор запросов умный то тогда
sql  должен сразу заменить
@i integer select @i=1 from _1SJOURN(TABLOCK HOLDLOCK) where 0=1 на  @i integer  @i=NULL  потому что 1 = 0 никогда не выполняется и sql  это видит
2.Если предположить что оптимизатор запросов глупый тогда
будет просканированна вся таблица _1SJOURN что накладно с точки зрения sql ресурсов.
3.Откуда я могу знакой какой у меня оптимизатор запросов ( умный или глупый ) и как это будет меняться со временем или при переходе на другой sql сервер.
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: xp - стандартные процедуры  _1sp__1SJOURN_TLock
Ответ #1 - 05. Ноября 2008 :: 09:29
Печать  
Хинт TABLOCK предписывает блокировать всю таблицу (применять блокировку по объекту таблица, а не запись или страница), поэтому вероятно, при установке блокировок условие ни как не анализруется.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: xp - стандартные процедуры  _1sp__1SJOURN_TLock
Ответ #2 - 05. Ноября 2008 :: 09:32
Печать  
про хинты я знаю, но тогда этот хинт предписывает sql-ю быть глупым и он вынужден после наложения блокировки просканировать всю таблицу а это достаточно много строк.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: xp - стандартные процедуры  _1sp__1SJOURN_TLock
Ответ #3 - 05. Ноября 2008 :: 09:38
Печать  
Z1 писал(а) 05. Ноября 2008 :: 09:32:
про хинты я знаю, но тогда этот хинт предписывает sql-ю быть глупым и он вынужден после наложения блокировки просканировать всю таблицу а это достаточно много строк.

Можно посмотреть план выполнения запроса
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: xp - стандартные процедуры  _1sp__1SJOURN_TLock
Ответ #4 - 05. Ноября 2008 :: 09:39
Печать  
Z1 писал(а) 05. Ноября 2008 :: 09:32:
...предписывает sql-ю быть глупым и он вынужден после наложения блокировки просканировать...
вероятнее так: наложить блокировку на всю таблицу, а потом "быть умным" и не сканировать.
  

1&&2&&3
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: xp - стандартные процедуры  _1sp__1SJOURN_TLock
Ответ #5 - 05. Ноября 2008 :: 09:51
Печать  
Конечно, установка блокировок и получение данных (сканирование таблицы) это разные задачи для сервера и отрабатываются последовательно. Кроме того сканирование ни когда не делается просто так, оно всегда делается чтобы отработать какое-то условие, т.е. тут от условия он пляшет. Ну а блокирование, вероятно, в первую очередь смотрит на хинты потом по результатам на условие.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: xp - стандартные процедуры  _1sp__1SJOURN_TLock
Ответ #6 - 05. Ноября 2008 :: 10:01
Печать  
Nick писал(а) 05. Ноября 2008 :: 09:38:
Z1 писал(а) 05. Ноября 2008 :: 09:32:
про хинты я знаю, но тогда этот хинт предписывает sql-ю быть глупым и он вынужден после наложения блокировки просканировать всю таблицу а это достаточно много строк.

Можно посмотреть план выполнения запроса

я  практически ничего не понимаю в планах но вот какой результат прямо сейчас получил
  

____.JPG ( 118 KB | Загрузки )
____.JPG
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: xp - стандартные процедуры  _1sp__1SJOURN_TLock
Ответ #7 - 05. Ноября 2008 :: 10:07
Печать  
Ага, и можно увидеть:
  

estimated.JPG ( 20 KB | Загрузки )
estimated.JPG
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: xp - стандартные процедуры  _1sp__1SJOURN_TLock
Ответ #8 - 05. Ноября 2008 :: 10:20
Печать  
Nick писал(а) 05. Ноября 2008 :: 10:07:
Ага, и можно увидеть:

А можно  расшифровать хорошо это или плохо.
"умный" или "глупый" оптимизатор.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: xp - стандартные процедуры  _1sp__1SJOURN_TLock
Ответ #9 - 05. Ноября 2008 :: 10:23
Печать  
Ну например "Предпологаемое использование ЦПУ = 0" Это хорошо или плохо?
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: xp - стандартные процедуры  _1sp__1SJOURN_TLock
Ответ #10 - 05. Ноября 2008 :: 10:27
Печать  
понятно
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать