Имя: Пароль:
1C
1С v8
Странное поведение MSSQL
,
0 Kvestin
 
29.12.16
11:44
Может кто-то сталкивался и сможет объяснить почему так.
Беру запрос, который выбирает данные из базы 1С.
Захожу в Management Studio,  правой кнопкой на базу из которой делается выборка, создать запрос, вставляю текст и выполняю. Время выполнения 8 минут.
Далее встаю на другую базу (пустую) на том же сервере, также правой кнопкой, создать запрос, вставляю тот же запрос и нажимаю выполнить. Время выполнения 11 секунд.
Получаемые данные 1 в 1, в тексте запроса явно указано из какой базы выбирать данные. Отличается только контекст подключения в MSSQL.
Почему так сильно отличается время выполнения запроса если по факту это один и тот же запрос? Повторное выполнение показывает такие же результаты (8 минут в одном случае и 11 секунд в другом).
1 Aleksey
 
29.12.16
11:47
Т.е. тебя удивляет что запрос на таблице с кучей данных и запрос по пустое таблице выполняется за разное количество времени?
2 Allexe
 
29.12.16
11:48
3 igork1966
 
29.12.16
11:48
(0) кэш сервера SQL?
т.е. второй раз уже из кэша данные
4 shuhard
 
29.12.16
11:49
(1) он цепляется к одной и той же базе
разница в указании dbo
5 Feanor
 
29.12.16
11:49
(0) Не очень понятно, как ты на пустой базе получаешь результат 1 в 1 с базой, где есть данные
6 Kvestin
 
29.12.16
11:49
Да одинаковые данные и в первом и во втором случае. В запросе написано "... FROM sg.dbo._Reference3396 ..." и в том и в другом случае. Т.е. данные выбираются из одной и той же таблицы. Я явно указываю из какой таблицы и какой БД выбирать.
7 VladZ
 
29.12.16
11:50
(5) +500!
8 Это_mike
 
29.12.16
11:50
(6) а если сначала "на пустой", а потос на рабочей?
9 Feanor
 
29.12.16
11:51
(6) читай про кэширование планов запросов
10 shuhard
 
29.12.16
11:51
(6) мы поняли
надо смотреть через что цепляешь
возможно используется шаре мемери или алиасы
11 Kvestin
 
29.12.16
11:52
Я знаю про кэш. Поэтому про повторное выполнение и написал - это не кэш.
14 Cool_Profi
 
29.12.16
11:52
(10) Какая шаремемори? Всё в пределах одного сервера...
15 Feanor
 
29.12.16
11:52
(10) смотреть надо планы запросов :)
22 Kvestin
 
29.12.16
11:56
(19) Вообще только сегодня заметил. Раньше такого не наблюдал. Может конечно скульные админы что-то поменяли. Хотя логически у меня в голове не укладывается.
25 Feanor
 
29.12.16
12:01
(22) после dbcc freeproccache все также 8 минут и 11 секунд?
26 Kvestin
 
29.12.16
12:13
(25) Да. Это то и странно. Да и повторное выполнение дает такие жу результаты. Единственное что заметил, когда в контексте пустой базы выполняю данные в результате сразу появляются, а когда в контексте основной - постепенно по несколько строк. Может в студи есть какая-то настройка типа "выдавать результат по мере выполнения если в контексте текущей базы запрос" и этот режим медленнее работает.
27 ERWINS
 
29.12.16
12:18
интересно.

возможно что то с блокировками.
28 shuhard
 
29.12.16
12:46
(26) использовать профайлер, смотреть план запроса тебе высшие силы запретили ?
29 Kvestin
 
29.12.16
12:53
(28) План запроса я и в студии посмотрел - он одинаковый. Думаю какой-то прикол именно студии.
30 shuhard
 
29.12.16
12:55
(29)[ он одинаковый]
и что в нем занимает 7 минут 49 секунд ?
31 ERWINS
 
29.12.16
13:00
(29) выложи план запроса и сам запрос
, а в 1с сколько выполняется?
32 Kvestin
 
29.12.16
13:10
(31) Сейчас еще профайлером посмотрю. Этот запрос в 1С напрямую не выполняется. Т.е. это просто запрос из таблиц 1С, но он руками написан (точнее сгенерен). Подобный запрос в 1С используется в дин. списке - там он быстро выполняется.