Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SqlAnalizer - быстро, Приложение - медленно  [new]
Mordred
Member

Откуда:
Сообщений: 288
MSSQL 2000 sp4
Delphi7
ADO

вызов процедуры из analizer выполняется за 2-3 сек
из приложения(ADOQuery - SQl) - > 30 сек

Подскажите, куда копать?
9 дек 09, 12:04    [8039594]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Mordred
Подскажите, куда копать?
Возможно, Вам поможет сравнение планов выполнения запросов из SQL Analyser-а и из Вашего приложения
9 дек 09, 12:09    [8039647]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Mordred
Member

Откуда:
Сообщений: 288
а как посмотреть план выполнения для приложения?
9 дек 09, 12:11    [8039675]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Mordred
а как посмотреть план выполнения для приложения?
В 2005-м я для этих целей пользуюсь профайлером
Для 2000 - не знаю, опыта мало у меня в работе с ним...
9 дек 09, 12:14    [8039700]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Mordred
Member

Откуда:
Сообщений: 288
в 2000 в профайлере я чего-то это не нашел
9 дек 09, 12:24    [8039802]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
Mordred,

профайлером.
9 дек 09, 12:24    [8039806]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Mordred
Member

Откуда:
Сообщений: 288
Le Peace

а что там смотреть?
строка вызова процедуры совпадает с analizer,
единственно на порядки отличаются столбцы Reads и Duration
9 дек 09, 12:27    [8039840]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
aleks2
Guest
Mordred
Le Peace

а что там смотреть?
строка вызова процедуры совпадает с analizer,
единственно на порядки отличаются столбцы Reads и Duration


Profiler умеет показывать план. Надоть потыкаться в Events->Perfomance...
9 дек 09, 12:30    [8039875]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
Mordred
Le Peace

а что там смотреть?
строка вызова процедуры совпадает с analizer,
единственно на порядки отличаются столбцы Reads и Duration
В профайлере много всяких разных интересных событий.
9 дек 09, 12:30    [8039879]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Mordred
в 2000 в профайлере я чего-то это не нашел
2000 под рукой нету сейчас
Посмотрите, может, в 2000 есть что-то такое же как Категория событий Performance
9 дек 09, 12:31    [8039890]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
v
Guest
чаще всего такое бывает когда выполняется запрос с фильтрацией, т.е. where, и дельфи делает это на клиенте, а аналайзер на сервере. Тогда надо в параметрах выполнения запроса выбрать опцию выполнения на сервере.
9 дек 09, 12:32    [8039895]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
v
когда выполняется запрос с фильтрацией, т.е. where, и дельфи делает это на клиенте, а аналайзер на сервере.
Допустим, из 100 гигабайт надо посредством where выбрать 1 килобайт
И как это Делфи сделает на клиенте?
Все 100 гигабайт, что ли, перекачает на клиента перед фильтрацией ?
9 дек 09, 12:34    [8039930]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
v
чаще всего такое бывает когда выполняется запрос с фильтрацией, т.е. where, и дельфи делает это на клиенте, а аналайзер на сервере. Тогда надо в параметрах выполнения запроса выбрать опцию выполнения на сервере.
Прикольно, особенно с учетом "строка вызова процедуры совпадает с analizer".
9 дек 09, 12:34    [8039931]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Mordred
Member

Откуда:
Сообщений: 288
спасибо, нашел план в профйайлере - буду разбираться
9 дек 09, 13:01    [8040163]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Павел-П
Guest
Mordred,

Еще маленький совет.
Проверьте соответствие типов переменных, которые вы передаете из приложения в виде аргументов хранимым процедурам (запросам) и реальные типы данных в этих хранимых процедрах (запросах, таблицах).
Пример, в коде Вы передаете строку как NVARCHAR, а в процедуре (таблицах БД) она VARCHAR.
Это может приводить к существенной потери производительности.
10 дек 09, 11:36    [8045410]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33348
Блог
SET`ы коннектов сравните
10 дек 09, 11:45    [8045483]     Ответить | Цитировать Сообщить модератору
 Re: SqlAnalizer - быстро, Приложение - медленно  [new]
Серега Гость
Guest
Mordred,
Попробуй переменные в запрос передавать не через Parameters, а напрямую в строку запроса:
например,
Query1->SQL->Add("EXEC dbo.sp_example "+IntToStr(a)+", "+IntToStr(b))
22 дек 09, 17:38    [8103534]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить