-
MS SQL
Запрос на выборку на сервере отрабатывает за 2 секунды, а тот же запрос из ADODataSet-а - более 30 секунд (на той же машине).
В чем может быть причина?
-
> Jetus (17.09.2012 16:24:00) [0]
Причин может быть много, от разницы в настройка, до времени извлечения
данных с сервера, включая антивирус
-
> Jetus (17.09.2012 16:24:00) [0]
Инструмент для поиска SQL Server Profiler, Performance Monitor
-
> от разницы в настройка, до времени извлечения данных с сервера
скорее погрешность вычисления/понимания... судя по "емкости" описания.
ставлю на то, что "на сервере" это не в его программе которая выполняет с серверным курсором, а "из ADODataSet-а" естественно с клиентским, по умолчанию.
-
2 sniknik:
"на сервере" - это выполнение скрипта из Management Studio.
"из ADODataSet-а" - естественно на клиенте, но клиентская программа запущена на той же машине.
2 Anatoly Podgoretsky: как мне воспользоваться SQL Server Profiler в данной ситуации? Идет выполнение хранимой процедуры, в профайлере строка типа "EXEC ...." Что оно мне даст?
-
> Jetus (18.09.2012 09:36:04) [4]
Судя по всему тебе оно ничего не даст.
-
Прямо вот только выполнение запроса? И никаких иных телодвижений не производится?
Всегда 2 vs 30? Сколько раз пробовалось?
-
> но клиентская программа запущена на той же машине.
"курсорам" на это наплевать.
-
> Прямо вот только выполнение запроса? И никаких иных телодвижений
> не производится?
> Всегда 2 vs 30? Сколько раз пробовалось?
Не производиться. Ставлю бряк на ADODataSet.Open() и засекаю время.
Не всегда. Бывает 2 vs 30, бывает 2 vs 34, 2 vs 33
-
Перед ADODataSet.Open() поставить ADODataSet.DisableControls() и ещё раз замерить время.
-
> поставить ADODataSet.DisableControls() и ещё раз замерить
> время.
это для перебора хорошо
хотя... можно и попробавать, все-таки думается, что
иных телодвижений все же производится
если да - то поможет
-
> это для перебора хорошо
Как оказывается - не только для перебора.
-
имеешь ввиду OnXXX всякие?
-
> имеешь ввиду OnXXX всякие?
Даже если ни одного DataSource не подключено, накладные расходы у меня уменьшились на порядок. На DM.net где-то ветка валяется в архиве, примерно середина 2008 года.
-
> Даже если ни одного DataSource не подключено
про это знаю. Там (в ADO) всегда идет проверка, которую DisableControls отключает
Но не помню, что бы она была в Open. Она только при смене записи, вроде
-
> Но не помню, что бы она была в Open.
DataSource.ActiveChanged как минимум.
Впрочем, в данном конкретном топике проблема с большой долей вероятности не в DisableConrols, это я просто уточнение на [10] дал.