powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Время выполнения запроса
11 сообщений из 11, страница 1 из 1
Время выполнения запроса
    #39566906
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ,
Не могу понять одну вещь,
есть процедура на сервере которая возвращает набор данных клиенткому приложению.
Если эту процедуру запускать на компютере клиента из остнастки SQL Query Analyser (SQL 2000) он выполняется мгновенно и возвращает результирующий набор из 20 ти записей.
Но если эту же процедуру вызывать из клиентского приложения
= SQLEXEC(gnConnHandle, [EXEC MainReport , ?StDate, ?endDate'], (.SQL_Orders))
и если период примерно 1 месяц то напрочь все зависает ....
Грешил на формат даты, препробовал и так и сяк
'2017-11-01 07:00:00.000', '01112017'....
В чем может быть проблема?
Всем спасибо за любую мысль.
...
Рейтинг: 0 / 0
Время выполнения запроса
    #39566907
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriiНарод,
Не могу понять одну вещь,
есть процедура на сервере которая возвращает набор данных клиенткому приложению.
Если эту процедуру запускать на компютере клиента из остнастки SQL Query Analyser (SQL 2000) он выполняется мгновенно и возвращает результирующий набор из 20 ти записей.
Но если эту же процедуру вызывать из клиентского приложения
= SQLEXEC(gnConnHandle, [EXEC MainReport , ?StDate, ?endDate'], (.SQL_Orders))
и если период примерно 1 месяц то напрочь все зависает ....
Грешил на формат даты, препробовал и так и сяк
'2017-11-01 07:00:00.000', '01112017'....
В чем может быть проблема?
Всем спасибо за любую мысль.

Что еще заметил:
Включил Profiler:
Если смотреть запрос идущий с клиента:
CPU 51750, READS 929761
Если смотреть запрос идущий с SQL Query Analyser:
CPU 500, READS 118233

То есть видно что если запрос идет из клиентского приложения CPU кто-то очень сильно начинает грузить.
...
Рейтинг: 0 / 0
Время выполнения запроса
    #39566946
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valerii,
Попробуйте просто дату передавать параметром.
Может для SQL 2000 в dateTime перевести. (в 2005 точно не надо)
Текстовый формат - '20171101'
Да тупо выборку прямо на сервере сделайте, и определите какой)

Напрашиваются вопросы, это единственное обращение к серверу, или приложение с ним работает, и в других местах все ок?
Потому как разные советы напрашиваются)

ну и попробуйте
Код: sql
1.
2.
cSql='{CALL MainReport , ?StDate, ?endDate}'
nRes= SQLEXEC(gnConnHandle, cSql, 'MyCursor')	
...
Рейтинг: 0 / 0
Время выполнения запроса
    #39566955
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriiВключил Profiler...
Осталось посмотреть в план выполнения запросов. Сравнить быстрый и медленный. Скорее всего прийдётся очистить статистику для выполнения запросов либо добавить индекс.

Good luck!
...
Рейтинг: 0 / 0
Время выполнения запроса
    #39567810
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Ch,
Индекс перестраивал, не помогает...
Там запрос замученный чуток ...
Но это только с одной такой базой на одном сервере.
Та же база только сервер другой - очень уж тупая машинка-терминал- правда NCR хороший бренд - 256 МБ оперативки и все летает.
...
Рейтинг: 0 / 0
Время выполнения запроса
    #39567849
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriiSergey Ch,
Индекс перестраивал, не помогает...Какой индекс? Почему именно его?Там запрос замученный чуток ...
Но это только с одной такой базой на одном сервере.
Та же база только сервер другой - очень уж тупая машинка-терминал- правда NCR хороший бренд - 256 МБ оперативки и все летает.
А описанные симптомы наводят на мысли о parameter sbiffing. В гугле много написано.
...
Рейтинг: 0 / 0
Время выполнения запроса
    #39567891
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
Индексов несколько, но 2 основных
nr_orders - номер чека
time_order - время чека
эти 2 базовых по которым все дергается и джойнится
...
понятно что можно пробовать переделывать запросы... но на других машинках с большим объемом все летает, а в моей ситуации не то что тормоз, а тупо бешаное зависание и чем больше период тем ситуация фатальней. Хотя она фатальная уже за 2-х недельный период..
Я с таким впервые сталкиваюсь.
...
Рейтинг: 0 / 0
Время выполнения запроса
    #39567955
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriiSergey Sizov,
Индексов несколько, но 2 основных
nr_orders - номер чека
time_order - время чека
эти 2 базовых по которым все дергается и джойнитсяИ как вы это определили? У сервера спрашивали? План запроса в обоих случаях смотрели?...
понятно что можно пробовать переделывать запросы... но на других машинках с большим объемом все летает, а в моей ситуации не то что тормоз, а тупо бешаное зависание и чем больше период тем ситуация фатальней. Хотя она фатальная уже за 2-х недельный период..Что очень явно намекает на неиспользование индексов и полную бесполезность их перестраивания. Статистику давно обновляли?Я с таким впервые сталкиваюсь.Значит вы очень мало работали с MS SQL сервером. Ключевые слова для поиска я дал.
...
Рейтинг: 0 / 0
Время выполнения запроса
    #39567972
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Sergey Sizov][quot Valerii]Sergey Sizov,
И как вы это определили? У сервера спрашивали? План запроса в обоих случаях смотрели?
...
План запроса на сервере смотрел. Запускал эту процедуру на клиентсой машине, с которой работает клиентское приложение
мною написаное, и туже процедуру я запускаю в Query Analyser
В Query Analyser - выполнение запроса за пол - гда - 4 сек - возврат набора дагнных и 21 записи, в клиентском приложении полное зависание.
Как мне из клиентсого приложения просмотреть план запроса? ведь я дергаю в нем ту же процедуру с 2-мя параметрами периода, что и в Query Analyser ... ч той же инсрукцией EXEC ....
Profiler показывает загрузку CPU из клиентского приложения оболее 50К, когда если запускать процедуру из Query Analyser - макс 50.

Значит вы очень мало работали с MS SQL сервером. Ключевые слова для поиска я дал.
Вот именно что сервером MS SQL работаю давно. В самую глубь не могу сказать что копал - но кое-что известно...
DBCC contig , cleantable и другие процедуры над базовой таблицой проделывал....

Производительность сервера - может в нем причина? Он давно не перегружался, у него аптайм больше 2 лет - облачный...?
...
Рейтинг: 0 / 0
Время выполнения запроса
    #39567996
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valerii,
то есть проблемы с сервером решаете методом гадания на чем-нибудь?
Удачи.
...
Рейтинг: 0 / 0
Время выполнения запроса
    #39568282
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valerii= SQLEXEC(gnConnHandle, [EXEC MainReport , ?StDate, ?endDate'], (.SQL_Orders))
...


?endDate ' - это ошибка в сообщении или так в коде (с одинарной кавычкой) вызывается ХП?

Второе, сравните опции соединений в QA и фоксе.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Время выполнения запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]