Тормозит запрос текущих данных с InSQL 8.0

Сервер БД Historian, ранее InSQL

Тормозит запрос текущих данных с InSQL 8.0

Сообщение alextim » Ср окт 13, 2010 4:18 pm

Всем добрый день!!
Для периодического (1 раз в секунду) запроса текущих данных по 6-ти тегам из базы Runtime использую скрипт:

USE Runtime
DECLARE @pr1 nvarchar(256)
DECLARE @pr2 nvarchar(256)
DECLARE @pr3 nvarchar(256)
DECLARE @pr4 nvarchar(256)
DECLARE @pr5 nvarchar(256)
DECLARE @pr6 nvarchar(256)
SET @pr1 = :par1
SET @pr2 = :par2
SET @pr3 = :par3
SET @pr4 = :par4
SET @pr5 = :par5
SET @pr6 = :par6

SELECT TagName, InSQLTime = CURRENT_TIMESTAMP, DateTime = convert(varchar, DateTime,113), Value, Quality
FROM v_Live /*v_АналогЛив */
WHERE TagName = @pr1
or TagName = @pr2
or TagName = @pr3
or TagName = @pr4
or TagName = @pr5
or TagName = @pr6

Данные по 4-м из 5-ти запросов возвращаются мгновенно, а каждый 5-й "тормозит" 3-4 секунды. Никак не найду причину. Подскажите, где порыться?
alextim
 
Сообщения: 13
Зарегистрирован: Ср окт 13, 2010 4:10 pm

Сообщение Klinkmann_Msk » Чт окт 14, 2010 4:20 am

To alextim:

Попробуйте протестировать запрос, сформированный с помощью ActiveFactory.
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Сообщение alextim » Чт окт 14, 2010 11:20 am

Аналогичная ситуация и с запросом, сформированным AF. Уточнение: ответ "подвисает" на 3 секунды каждые 3 секунды. Вероятно всё же, что проблема в сервере...
alextim
 
Сообщения: 13
Зарегистрирован: Ср окт 13, 2010 4:10 pm

Сообщение Klinkmann_Msk » Чт окт 14, 2010 11:35 am

To alextim:

Осталось уточнить, какой именно сервер. WW или MS.
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Сообщение alextim » Чт окт 14, 2010 2:14 pm

To Klinkmann_Msk:

Если я правильно понял, Вы имеете ввиду какой именно из серверов привносит задержку? А каким образом это можно проверить?
Может есть спец. API или SDK для WW InSQL, чтобы исключить MS SQL (запрашивать данные не SQL-запросом)?

versioninfo: Wonderware IndustrialSQL Server 8.0 на MS SQL Server 2000
alextim
 
Сообщения: 13
Зарегистрирован: Ср окт 13, 2010 4:10 pm

Сообщение Klinkmann_Msk » Пт окт 15, 2010 5:16 am

To alextim:

"А каким образом это можно проверить?"
Интересный вопрос.
Можно попробовать проанализировать показатели загрузки ЦП и памяти на момент исполнения запроса.
Возможно, мешает антивирусное ПО.
Если используется HyperTrading, то его необходимо отключить.
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Сообщение skom » Вс окт 17, 2010 6:00 pm

Может поможет добавление строки SET NOCOUNT ON вначале запроса?
Правда в случае работы с инсиквелом, я не пробовал так делать.
skom
 
Сообщения: 173
Зарегистрирован: Вт окт 02, 2007 5:25 pm

Сообщение alextim » Ср окт 20, 2010 9:33 am

TO skom

SET NOCOUNT ON никак не повлияло (((
alextim
 
Сообщения: 13
Зарегистрирован: Ср окт 13, 2010 4:10 pm

Сообщение skom » Ср окт 20, 2010 12:58 pm

alextim писал(а):TO skom

SET NOCOUNT ON никак не повлияло (((


Можно ещё в настройках инсиквела поставить, чтобы он кэшировал например последние 2 недели.
skom
 
Сообщения: 173
Зарегистрирован: Вт окт 02, 2007 5:25 pm

Сообщение alextim » Чт окт 21, 2010 5:20 pm

TO skom

Можно ещё в настройках инсиквела поставить, чтобы он кэшировал например последние 2 недели


Как?

И вот еще что заметил. После перезапуска сервера эффект "подвисания" некоторое время заметно меньше. В процессе работы (при запросах) MS SQL постепенно занимает всю свободную память Windows (~ 2ГБ). При этом начинают подтормаживать закпросы к InSQL. Может как-то можно граничить "аппетиты" MS SQL?
alextim
 
Сообщения: 13
Зарегистрирован: Ср окт 13, 2010 4:10 pm

Сообщение beachbear » Пт окт 22, 2010 2:30 am

alextim писал(а):Может как-то можно граничить "аппетиты" MS SQL?


MS SQL Server, который установлен на машине с Wonderware Historian, надо ОБЯЗАТЕЛЬНО ВСЕГДА ограничивать по памяти.
SQL Server думает, что он один самый важный в системе и оптимизирует себя невзирая на другие процессы.
В разных версиях SQL Server-а это ограничение конфигурируется в разных местах.
Спросите у Великого и Могучего Гугла про конкретно вашу версию, он всё знает.
Для 2GB RAM, я бы больше 400MB SQL Server-у бы не давал.
beachbear
 
Сообщения: 149
Зарегистрирован: Вт апр 21, 2009 2:55 pm

Сообщение alextim » Пт окт 22, 2010 4:16 am

to beachbear

Спасибо за разъяснения. Если не секрет, источник информации - личный опыт или чьи-то официальные рекомендации?
alextim
 
Сообщения: 13
Зарегистрирован: Ср окт 13, 2010 4:10 pm

Сообщение skom » Пт окт 22, 2010 9:47 am

alextim писал(а):TO skom

Можно ещё в настройках инсиквела поставить, чтобы он кэшировал например последние 2 недели


Как?

И вот еще что заметил. После перезапуска сервера эффект "подвисания" некоторое время заметно меньше. В процессе работы (при запросах) MS SQL постепенно занимает всю свободную память Windows (~ 2ГБ). При этом начинают подтормаживать закпросы к InSQL. Может как-то можно граничить "аппетиты" MS SQL?


Параметр HistoryDaysAlwaysCached, находится в разделе Parameters.

The duration, in days, for which history block information is always loaded in memory. The default is 0.
skom
 
Сообщения: 173
Зарегистрирован: Вт окт 02, 2007 5:25 pm

Сообщение beachbear » Пт окт 22, 2010 4:49 pm

alextim писал(а):to beachbear
Если не секрет, источник информации - личный опыт или чьи-то официальные рекомендации?


- Официальные рекомендации из личного опыта :wink:
beachbear
 
Сообщения: 149
Зарегистрирован: Вт апр 21, 2009 2:55 pm

Сообщение beachbear » Пт окт 22, 2010 5:01 pm

skom писал(а):Параметр HistoryDaysAlwaysCached, находится в разделе Parameters.
The duration, in days, for which history block information is always loaded in memory. The default is 0.


В данном случае этот параметр не окажет никакого влияния, поскольку данные достаются не из History-блоков, а из Live, то есть просто читаются последние известные значения из ActiveImage - фактически из памяти.
При этом необходимые метаданные тэгов уже пристутсвуют в памяти и не подгружаются из History-блоков.
Наблюдаемое поведения вполне объяснимо если система виртуальной памяти уходит в обработку page faults при недостатке свободной физической памяти.
beachbear
 
Сообщения: 149
Зарегистрирован: Вт апр 21, 2009 2:55 pm


Вернуться в Historian Server

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14