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

Откуда:
Сообщений: 4
Здравствуйте.Столкнулся с такой проблемой,имеется Dataset с следующим запросом
SELECT wcd.ID
,Semester
,IDSubject
,HourLecture
,HourSeminar
,HourPractice
,HourSmallGroup
,HourIndividual
,HourSelfWork
,ControlTest
,ControlExamination
,ControlCourseWork
,DateChange
FROM [WorkCurriculumDiscipline] as wcd
WHERE (idWorkCurriculum=:id)
ORDER by Semester, ControlExamination desc, ControlTest desc, ControlCourseWork desc

При редком выполнение запроса 5-7 раз в день,работает нормально.Но недавно была необходимость частого использования,тут начались ошибки.Запрос периодически возвращает, что в базе ноль записей соответствующих условию,хотя на самом деле они есть. Написал лог, чтоб отследить каждый шаг выполнения, в итоге увидел, что все параметры передаются правильно.

Программа написана на delphi.
База MS SQL 2008R2
11 янв 13, 08:59    [13751539]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка результата запроса  [new]
_djХомяГ
Guest
Как предпложение - может связано с параллелизмом/уровнем изоляции
11 янв 13, 09:04    [13751554]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка результата запроса  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31822
Neviduks
.Запрос периодически возвращает, что в базе ноль записей соответствующих условию,хотя на самом деле они есть
Так не бывает. Запрос слишком простой, хинтов никаких нету, с чего он будет не возвращать записи?
11 янв 13, 09:09    [13751574]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка результата запроса  [new]
invm
Member

Откуда: Москва
Сообщений: 9687
Neviduks
Написал лог, чтоб отследить каждый шаг выполнения, в итоге увидел, что все параметры передаются правильно.
Для этого нужно не свой лог писать, а отслеживать профайлером какие запросы приложение шлет серверу.
11 янв 13, 09:34    [13751676]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка результата запроса  [new]
Neviduks
Member

Откуда:
Сообщений: 4
invm,профайлером и так отслеживаю, свой лог просто удобнее, все сохраняется в удобной для меня форме, также знаю количество подобных ошибок за все время работы программы.Кстати из 1798 раз выполнения данного запросы, ошибка возникла 79 раз. А профайлером ничего интересного не показывает, кроме того, что запрос,который отработает не правильно, выполняется 9 сек и происходит 600 логических чтений диска
11 янв 13, 09:40    [13751696]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка результата запроса  [new]
iap
Member

Откуда: Москва
Сообщений: 47063
Neviduks
Запрос периодически возвращает, что в базе ноль записей соответствующих условию
Прямо так и говорит: "Слюшай, я 0 записей верну, да?"?

Не может быть такого, что возвращается ошибка по таймауту,
а в дельфи это сообщение подавляется (кто-то так запрограммировал)?
11 янв 13, 09:43    [13751708]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка результата запроса  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31822
Neviduks
А профайлером ничего интересного не показывает, кроме того, что запрос,который отработает не правильно, выполняется 9 сек и происходит 600 логических чтений диска
А сколько записей возвращается и есть ли ошибка, в профайлере не смотрели (там есть колонки для этого)?
11 янв 13, 09:54    [13751764]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка результата запроса  [new]
Neviduks
Member

Откуда:
Сообщений: 4
iap,
Данный запрос возвращает рабочий учебный план группы студентов,если он вернул 0 записей, то программа предлагает пользователю загрузить новый рабочий учебный план,а это должно происходит только у новых групп студентов,а если план выбирался один раз и он есть в базе, то просто показываются дисциплины которые студенты должны сдавать.
11 янв 13, 09:59    [13751785]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка результата запроса  [new]
Neviduks
Member

Откуда:
Сообщений: 4
alexeyvg,Подскажи как посмотреть результат который вернул сервер на запрос
11 янв 13, 10:00    [13751794]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка результата запроса  [new]
invm
Member

Откуда: Москва
Сообщений: 9687
Neviduks
invm,профайлером и так отслеживаю, свой лог просто удобнее, все сохраняется в удобной для меня форме, также знаю количество подобных ошибок за все время работы программы.Кстати из 1798 раз выполнения данного запросы, ошибка возникла 79 раз. А профайлером ничего интересного не показывает, кроме того, что запрос,который отработает не правильно, выполняется 9 сек и происходит 600 логических чтений диска
Ну да, можно написать свое журналирование, такое красивое и удобное, и гордо заявить, что, мол, мое приложение работает без ошибок, это все дурацкий сервер глючит. А можно почитать документацию по профайлеру и, например, добавить в трассу отслеживание плана выполнения и из него уже узнать сколько же строк вернул запрос. И отслеживание ошибок то же в трассу можно добавить.
11 янв 13, 10:01    [13751801]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка результата запроса  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31822
Neviduks
alexeyvg,Подскажи как посмотреть результат который вернул сервер на запрос
В профайлере нужно выбрать поля Error и RowCounts, как то так называются
11 янв 13, 17:02    [13755603]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить