|
Замер времени выполнения запросов | ☑ | ||
---|---|---|---|---|
0
Kaidend
02.03.12
✎
13:08
|
Всем привет.
Иногда бывают ситуации, когда нужно взять какой-то запрос, поизменять его немного и определить время выполнения с целью поиска наиболее оптимального варианта запроса. Можно дописать стандартную консоль запросов, чтобы она выводила время выполнения запроса или, например, взять какую-то готовую консоль, где эта функция уже есть. Это не проблема, в общем. Проблема в том, что 1С (а может СУБД) кэширует данные, получаемые из БД. Так что первый раз запрос выполняется, допустим, 45 секунд, второй раз - 10 секунд, третий раз - почти мгновенно. Это затрудняет определение того, какой из нескольких вариантов запроса работает быстрее. Кто-нибудь знает, как решить эту проблемку? |
|||
1
Kashemir
02.03.12
✎
13:08
|
Чисть кэш на скуле
|
|||
2
Kaidend
02.03.12
✎
13:09
|
К сожалению, нет доступа к серверу СУБД.
Еще какие-нибудь варианты? :) |
|||
3
Kashemir
02.03.12
✎
13:10
|
Консолей со временем выполнения предостаточно, допилить опять же минутное дело. Я себе прикрутил http://infostart.ru/public/78001/
|
|||
4
Kashemir
02.03.12
✎
13:10
|
(2) Другие мне не известны и вряд ли существуют.
|
|||
5
Maxus43
02.03.12
✎
13:11
|
нормальная это ситуация. просто 10 раз выполняй запрос и общее время смотри, другой запрос тоже 10 раз
|
|||
6
Kaidend
02.03.12
✎
13:11
|
Проблема не в том, чтобы допилить, я же написал об этом в (0).
Проблема в кэшировании результатов запроса то ли СУБД, то ли сервером приложений 1С, что мешает точно определять время выполнения запроса. |
|||
7
Kashemir
02.03.12
✎
13:12
|
(6) Задал 2 вопроса - получил 2 вопроса
|
|||
8
Kashemir
02.03.12
✎
13:12
|
+(7) *ответа
|
|||
9
Kaidend
02.03.12
✎
13:12
|
(5) а если оба запроса похожи и отличаются только одной строкой, допустим? :) тогда нужно выжидать некоторое время между сериями испытаний, чтобы данные исчезли из кэша? :)
|
|||
10
Maxus43
02.03.12
✎
13:16
|
(9) разница в доли секунды во время исполнения - не стоит оптимизации. либо запрос кривой либо нет.
|
|||
11
Kaidend
02.03.12
✎
13:19
|
(10) Нет, я к тому, что если запросы похожие, то, когда ты начнешь исполнять второй запрос в первый раз, он успешно возьмет данные из кэша, помещенные туда во время десятого выполнения первого запроса.
|
|||
12
Maxus43
02.03.12
✎
13:20
|
(11) ну ёлки палки.
Делай так : Первый Второй Первый Второй 10раз Первый - запомнил время 10раз Второй - запомнил время |
|||
13
Kaidend
02.03.12
✎
13:23
|
(12) и второй запрос ВСЕГДА будет использовать данные, накэшированные первым :)
|
|||
14
Maxus43
02.03.12
✎
13:24
|
(13) он их использует при
Первый Второй Первый Второй потом первый будет использовать 2-го, а 2-й первого. погрешность будет минимальна. Хочеш знать наверняка - план запроса на скуле и там замеряй |
|||
15
Kaidend
02.03.12
✎
13:26
|
(14)а, ну, в принцие, да
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |