|
Странное поведение 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
|
Тут посмотри http://its.1c.ru/db/metod8dev#content:5837:hdoc
|
|||
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С используется в дин. списке - там он быстро выполняется.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |