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

Откуда:
Сообщений: 9
Всем доброго дня!

В базах данных я полный чайник потому прошу не ругать сильно.
В БД данных SQL Server 2008 хранятся исторические данные для формирования трендов параметров. Проблема в следующем:
При запросе данных за небольшой промежуток времени (4-5 часов) данные выгружаются нормально. При запросе же данных за более длительный промежуток данные то выгружаются, то нет. За промежуток больше сутко выгрузить не удается.
Возможно проблема и не со стороны SQL Server, а со стороны приложения, но вот что я выяснил:
Запустил SQL Profiler:
Данные, который потом нормально отображаются в тренде получаются от запроса:
declare @p1 int
set @p1 = какое то число
exec sp_prepexec @p1 output

запрос который не приводит к отображению данных:
declare @p1 int
set @p1 = NULL
exec sp_prepexec @p1 output

возможно это какая то ошибка? но куда копать ума не приложу. Еще кстати длительность всех неудавшихся запросов больше 60500 мсек. У всех удавшихся запросов длительность меньше. Может еще в этом проблема.

Что можно посмотреть и проверить, подскажите, пожалуйста.
13 окт 15, 07:30    [18270514]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
Greyssm
При запросе данных за небольшой промежуток времени (4-5 часов) данные выгружаются нормально. При запросе же данных за более длительный промежуток данные то выгружаются, то нет. За промежуток больше сутко выгрузить не удается.

И как собственно вы "выгружаете данные" ? Каким средством/программой ?
И в чем выражается ваше "не удается" ?
13 окт 15, 10:11    [18270995]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Greyssm
Member

Откуда:
Сообщений: 9
Есть приложение Factory Talk View SE, имеющее в своем составе объект Trend. Процедура выглядит следующим образом:
1. Через VBA отсылается SQL запрос на сервер и добавляется перо в тренд, командой Trend.Pens.Add. Здесь все нормально проходит - по умалчиванию выводится история за последние 2 часа, график отрисовывается.
2. Изменяем через VBA время начал и конца отображения объекта Trend. Если промежуток небольшой - до 4-5 часов, то нормально отображается, если же промежуток больше то график просто не отрисовывается. Причем вроде от давности вырезанного коска это не зависит. Промежуток в 4-5 часов за вчера и 2 недельной давности отображается нормально.
Все что я смог пока раскопать - это вот такое отличе в запросах выдаваемых SQL Prolifet. понимаю, что это не причина, а следствия какой то более глубинной проблемы, но так как в это практически полный "ноль" даже не понимаю куда соваться.

Просто данные качает сам объект Trend, а как и черех что он это делает для меня загадка, скорее всего то же через OLEDB, но как увидеть открытое соединение, и промониторить его ошибки мне не понятно.
13 окт 15, 11:02    [18271274]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
Greyssm
Если промежуток небольшой - до 4-5 часов, то нормально отображается, если же промежуток больше то график просто не отрисовывается.

Сервер ничего не может "отрисовать"

Greyssm
Просто данные качает сам объект Trend, а как и черех что он это делает для меня загадка, скорее всего то же через OLEDB, но как увидеть открытое соединение, и промониторить его ошибки мне не понятно.

Все, что происходит на сервере, монитроится Профайлером. И коннекты и ошибки.
А все, что происходит в программе, мониторить должна сама программа.
13 окт 15, 11:07    [18271317]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Greyssm
Member

Откуда:
Сообщений: 9
Ну естественно сервер ничего не отрисовывает, отрисовывает приложение на основе данных от сервера.
В том то все и дело нет нигде никаких ошибок. Ни в журнале виндос ни в приложении, ни в журналах SQL Server, нигде.
Все отличие этих двух запросов (за короткое и длительно время)- при загрузке за короткое время появляться в приложении окно загрузки данных, постоит несколько секунд, потом произойдет загрузка данных (по тил бару видно), появляется график.
Если же загружать за длительный период, то так же окно загрузки появляется ,висит около минуты, потом закрывается, графика нет.
Ни ошибок, ничего, третий день бьюсь. Подключился профайлером, нашел такое отличие, потому сюда и написал, так как мне это не о чем не говорит, а специалист возможно подскажет в какую сторону искать проблему.
13 окт 15, 11:15    [18271373]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
Greyssm
В том то все и дело нет нигде никаких ошибок.

Если приложение не отображает ошибку, то это не значит, что ее нет

Greyssm
ни в приложении

А вы сами писали обработчик ошибок ?

Greyssm
Подключился профайлером, нашел такое отличие, потому сюда и написал, так как мне это не о чем не говорит, а специалист возможно подскажет в какую сторону искать проблему.

В сторону обращения в поддержку приложения
13 окт 15, 11:19    [18271403]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Greyssm
Member

Откуда:
Сообщений: 9
по крайней мере ошибок заложенных разработчиками приложения я не вижу. В тех. поддержку я обращался уже давно по поводу этой проблемы, так как в начале пытался решить ее удаленно, без выезда на объект. Поддержка помочь не может, так как с таким не сталкивалась.
Я так понимаю, что строчка "set @p1 = NULL" вполне нормальная ситуация при работе сервера?
Но почему же как я ее вижу только в запросах, которые не привели к отображению графика?
13 окт 15, 11:24    [18271433]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31961
Greyssm
Подключился профайлером, нашел такое отличие, потому сюда и написал, так как мне это не о чем не говорит, а специалист возможно подскажет в какую сторону искать проблему.
Отличие очевидно - приложение по разному работает с сервером в этих двух случаях.

Перед этим вашим стейтментом, "declare @p1 int ..." есть ещё один, в котором получается значение @p1
Вот он возвращает NULL вместо числа
Почему - это уже нужнео смотреть, что приложение посылает серверу в этих двух случаях

В общем нужно смотреть и приложение тоже, дело, конечно, тут не в сиквеле

Как минимум приложение скрывает ошибки от сиквела, как максимум - посылает неправизьные запросы.
13 окт 15, 11:25    [18271447]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31961
Greyssm
Я так понимаю, что строчка "set @p1 = NULL" вполне нормальная ситуация при работе сервера?
Ненормальное.

@p1 - это номер процедуры, которую нужно выполнить. Этот номер получается другим запросом, перед этим.
13 окт 15, 11:27    [18271455]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
Greyssm
Я так понимаю, что строчка "set @p1 = NULL" вполне нормальная ситуация при работе сервера?

Сервер сам себе команды не пишет
Сервер выполняет команды, которые ему присылает клиент.
Серверу все равно, что присваивать переменной, NULL ничем не хуже и не лучше других значений

Greyssm
Но почему же как я ее вижу только в запросах, которые не привели к отображению графика?

Еще раз - на сервере нет никаких команд "отображения графика". Чем руководствуется клиентское приложение, присваивая переменной то или иное значение, серверу безразлично
13 окт 15, 11:29    [18271477]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Greyssm
Member

Откуда:
Сообщений: 9
alexeyvg
Отличие очевидно - приложение по разному работает с сервером в этих двух случаях.


странно, ведь вся разница в этих двух запросах - это длительность выборки, ну и соответственно объем получаемых данных

alexeyvg

Перед этим вашим стейтментом, "declare @p1 int ..." есть ещё один, в котором получается значение @p1
Вот он возвращает NULL вместо числа

уже понятнее, спаисбо

alexeyvg
Почему - это уже нужнео смотреть, что приложение посылает серверу в этих двух случаях

это можно так же профайлром посмотреть? как его настроить что смотреть?
13 окт 15, 11:38    [18271535]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Greyssm
Member

Откуда:
Сообщений: 9
Glory
Еще раз - на сервере нет никаких команд "отображения графика". Чем руководствуется клиентское приложение, присваивая переменной то или иное значение, серверу безразлично

я понимаю, что проблема скорее всего со стороны приложения, просто хочу ее локализовать...
13 окт 15, 11:40    [18271549]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
Greyssm
Glory
Еще раз - на сервере нет никаких команд "отображения графика". Чем руководствуется клиентское приложение, присваивая переменной то или иное значение, серверу безразлично

я понимаю, что проблема скорее всего со стороны приложения, просто хочу ее локализовать...

Почему вы делаете это в данном форуме ?
13 окт 15, 11:41    [18271563]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Greyssm
Member

Откуда:
Сообщений: 9
Glory, потому что единственное отличие которое я нашел относится именно к SQL Server. Была вероятность, что спецалисту это скажет о многом.
Ваши же ответы, это не попытка помочь, а что типа "Иди отсюда мальчик не мешай взрослым дядечкам". Вы все свои 100 тыс сообщений в таком духе написали?
13 окт 15, 11:47    [18271622]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
Greyssm
Glory, потому что единственное отличие которое я нашел относится именно к SQL Server.

Еще раз
Сервер не пишет сам себе команды
Вы нашли разницу в командах, которые ваше приложение отсылает серверу в разных случаях.


Greyssm
Ваши же ответы, это не попытка помочь, а что типа "Иди отсюда мальчик не мешай взрослым дядечкам". Вы все свои 100 тыс сообщений в таком духе написали?

А вы наверное очередной умник, который только и умеет, что считать количество сообщений у других ?
Сейчас вы наверное разразитесь лекцией про то, для чего созданы форумы и как и что все должны отвечать на ваши увлекательные вопросы ?
13 окт 15, 11:55    [18271713]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Greyssm
Member

Откуда:
Сообщений: 9
Glory
Еще раз
Сервер не пишет сам себе команды
Вы нашли разницу в командах, которые ваше приложение отсылает серверу в разных случаях.

Ну наконец то Вы в своем 5 или 6 сообщении начали что отвечать конкретное - разные запросы, ок. И причем здесь "еще раз"? Нигде в ваши сообщениях до этого такого объяснения не было, отвечал другой человек, я его понял.
?

Glory
А вы наверное очередной умник, который только и умеет, что считать количество сообщений у других ?
Сейчас вы наверное разразитесь лекцией про то, для чего созданы форумы и как и что все должны отвечать на ваши увлекательные вопросы ?

попрошу Вас больше не писать ничего в данной теме, конструктива от ваших сообщений "ноль"
13 окт 15, 12:02    [18271778]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
Greyssm
попрошу Вас больше не писать ничего в данной теме, конструктива от ваших сообщений "ноль"

Здесь пишут не по-вашеу соизволению.
Вы можете засунуть свои претензии подальше или поискать другой форум.
13 окт 15, 12:06    [18271816]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31961
Greyssm
alexeyvg
Почему - это уже нужнео смотреть, что приложение посылает серверу в этих двух случаях

это можно так же профайлром посмотреть? как его настроить что смотреть?
Хотя нет. У вас вообще приложение неправильно вызывает sp_prepexec. Там же стейтмент должен быть.

В общем, мало инфромации.

По одному трейсу ничего не скажешь. Ну, посылает приложение серверу команды, ну, выполняет их сервер. И что, какой вывод можно из этого сделать?
При возникновении ошибок нужно смотреть всю цепочку, и результат выполнения её отдельных звеньев, каждого из них - соответствует ли он ожидаемому.

Ещё можно иногда находить ошибки отдельно на сиквеле, при хорошем разделении в духе "сервис-ориентированная архитектура"
Но у вас ошибка совсем внутри, и ошибки не олгируются, просто "пустой экран".

PS. Да, ещё нужно в трейсе вывести результат выполнения, это в профайлере колонку нужно выбрать при настройке трассы.
13 окт 15, 12:07    [18271821]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Greyssm
Member

Откуда:
Сообщений: 9
Glory, ясно, обычный форумный тролль хоть и модер. Посмотрел рядом лежащую тему - сообщения в том же духе, хотя другие люди пытаются хоть как-то конкретно ответить. Тему не до конца проясненную закрыли, чувствую и мою тему такая же судьба постигнет.
Я еще раз прошу Вас не писать здесь больше ничего, так как мне Ваше мнение уже не интересно, а понабивать сообщения Вы можете и в другом месте.
13 окт 15, 12:10    [18271852]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Greyssm,

Возможно в приложении таймаут выставлен на 60 секунд, после этого запрос отваливается не сообщая никакой ошибки пользователю. Посмотрите на колонку Error в профайлере. Если там будет "Abort", то это таймаут. Может быть в приложении есть настройка таймаута.

А вообще конечно нужно смотреть на код запроса (а не тот огрызок что вы выложили) и планы. Возможно запрос не оптимальный и сервер не успевает его выплнить. А может быть данных очень много и у вас сеть не справляется. надо смотреть ожидания. И вообще, скачайте sp_whoIsActive и смотрите что у вас происходит когда запрос выполняется.
14 окт 15, 22:43    [18280346]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008. Проблема получения большого объема данных  [new]
Зимаргл
Guest
Greyssm,

Вам в техподдержку Роквелла. RSView имеет несколько убогую систему трендов.
14 окт 15, 22:53    [18280369]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить