Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Время выполнения запроса / 11 сообщений из 11, страница 1 из 1
09.12.2017, 02:54
    #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
09.12.2017, 03:10
    #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
09.12.2017, 09:59
    #39566946
asdor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время выполнения запроса
Valerii,
Попробуйте просто дату передавать параметром.
Может для SQL 2000 в dateTime перевести. (в 2005 точно не надо)
Текстовый формат - '20171101'
Да тупо выборку прямо на сервере сделайте, и определите какой)

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

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

Good luck!
...
Рейтинг: 0 / 0
11.12.2017, 16:45
    #39567810
Valerii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время выполнения запроса
Sergey Ch,
Индекс перестраивал, не помогает...
Там запрос замученный чуток ...
Но это только с одной такой базой на одном сервере.
Та же база только сервер другой - очень уж тупая машинка-терминал- правда NCR хороший бренд - 256 МБ оперативки и все летает.
...
Рейтинг: 0 / 0
11.12.2017, 17:28
    #39567849
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время выполнения запроса
ValeriiSergey Ch,
Индекс перестраивал, не помогает...Какой индекс? Почему именно его?Там запрос замученный чуток ...
Но это только с одной такой базой на одном сервере.
Та же база только сервер другой - очень уж тупая машинка-терминал- правда NCR хороший бренд - 256 МБ оперативки и все летает.
А описанные симптомы наводят на мысли о parameter sbiffing. В гугле много написано.
...
Рейтинг: 0 / 0
11.12.2017, 18:03
    #39567891
Valerii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время выполнения запроса
Sergey Sizov,
Индексов несколько, но 2 основных
nr_orders - номер чека
time_order - время чека
эти 2 базовых по которым все дергается и джойнится
...
понятно что можно пробовать переделывать запросы... но на других машинках с большим объемом все летает, а в моей ситуации не то что тормоз, а тупо бешаное зависание и чем больше период тем ситуация фатальней. Хотя она фатальная уже за 2-х недельный период..
Я с таким впервые сталкиваюсь.
...
Рейтинг: 0 / 0
11.12.2017, 19:57
    #39567955
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время выполнения запроса
ValeriiSergey Sizov,
Индексов несколько, но 2 основных
nr_orders - номер чека
time_order - время чека
эти 2 базовых по которым все дергается и джойнитсяИ как вы это определили? У сервера спрашивали? План запроса в обоих случаях смотрели?...
понятно что можно пробовать переделывать запросы... но на других машинках с большим объемом все летает, а в моей ситуации не то что тормоз, а тупо бешаное зависание и чем больше период тем ситуация фатальней. Хотя она фатальная уже за 2-х недельный период..Что очень явно намекает на неиспользование индексов и полную бесполезность их перестраивания. Статистику давно обновляли?Я с таким впервые сталкиваюсь.Значит вы очень мало работали с MS SQL сервером. Ключевые слова для поиска я дал.
...
Рейтинг: 0 / 0
11.12.2017, 20:50
    #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
11.12.2017, 21:36
    #39567996
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время выполнения запроса
Valerii,
то есть проблемы с сервером решаете методом гадания на чем-нибудь?
Удачи.
...
Рейтинг: 0 / 0
12.12.2017, 13:15
    #39568282
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время выполнения запроса
Valerii= SQLEXEC(gnConnHandle, [EXEC MainReport , ?StDate, ?endDate'], (.SQL_Orders))
...


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

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


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