загрузка действия над объектами

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
Ответить
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

загрузка действия над объектами

Сообщение Anderyt »

всем здравствуйте!
скажите плиз, кто нить обращал внимание, какую работу выполняет сервер БД при загрузке действия над объектом на клиенте?
мы заметили, что на удаленной площадке (которая подключена к нашей сети аж через 6 Мбит/сек) одно из действий загружается целых 20 секунд.
у них конечно и все остальное работает немного медленнее, чем в нашей сети, но действие - это что то особенное.
начал копаться в профайлере - выяснил, что сервер все содержимое действия (шаги, функции и переменные) выдает в виде курсоров, с построчной отправкой клиенту, и этим он занимается на протяжении 20 секунд. в пределах своей сети мы этого не замечали, а тут видимо из-за частой пересылки мелких порций данных доходит до таких нереальных затрат времени..
и причем в профайлере видно, что каждая строка возвращается по 3 раза.
сначала идет exec sp_cursoropen с запросом, по которому строится курсор, потом по ТРИ exec sp_cursor для каждой строки из тех, что вернул конкретный запрос.
в чем смысл?
сервер БД - MS SQL Server
лучше день потерять, потом за пять минут долететь!
Loco
Активный участник
Сообщения: 75
Зарегистрирован: 22 фев 2005, 12:33
Используемое ПО: Lotsia PDM PLUS LT

Re: загрузка действия над объектами

Сообщение Loco »

А как обстоит дело с загрузкой SQL Server?
Если он не сильно загружен, то дело не в нем, а надо искать причину в скорости обмена по сети.

(Был тут казус: одна система тормозила, так тоже грешили на сервер СУБД, а оказалось, что он "бегает и спрашивает, куда все подевались" :) (то есть, не загружен практически вообще). А проблема с тормозами оказалась из-за криво прописавшихся трастов между доменами.)
Loco
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: загрузка действия над объектами

Сообщение Anderyt »

сам сервер загружен не сильно. на фоне обработки остальных пользователей загрузка этого действия из медленной сети практически незаметна.
скорее всего да, проблема в сети. но все таки есть ощущение, что без курсоров было бы быстрее.. да и выполнение каждого sp_cursor по три раза я пока не могу объснить.
а поясните пожалуйста, в чем была проблема у вас, с трастами, и как ее решили?
у нас тоже два домена с трастом между ними (каким то чудом работает виндовая авторизация для пользователей из другого домена, мы на радостях начали всех юзеров оттуда переводить на нее, скоро местные начнут завидовать :-) )
лучше день потерять, потом за пять минут долететь!
Loco
Активный участник
Сообщения: 75
Зарегистрирован: 22 фев 2005, 12:33
Используемое ПО: Lotsia PDM PLUS LT

Re: загрузка действия над объектами

Сообщение Loco »

С трастами была непонятная проблема. Выражалась в том, что доступ по сети с некоторых машин (не со всех) работал очень медленно.
Путем исключения выяснили, что как-то криво прописались доверительные отношения между доменами (грешили на то, что у нас разные версии Windows Server (вплоть до 2003) используются). Найти точную причину так и не смогли.
Решилось удалением и повторным перезаданием трастов между доменами.

Был и еще один глюк с производительностью из-за того, что тормозил внутренний сервер DNS (скорее всего, было связано с недостаточной производительностью машины, на которой был поднят сервер DNS (она же была PDC), но его тупо решили поднятием сервера DNS на другой машине.

Так что если SQL Server не сильно загружен, то проблема явно не в нем.
Loco
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: загрузка действия над объектами

Сообщение Anderyt »

да, удаленность сети конечно вносит свою лепту :-(
а "медленно работал доступ по сети" - это как?
долго обнаруживались сетевые ресурсы и долго шло подключение к конкретной машине (например, чтобы увидеть ее сетевые папки)?
или на этих машинах даже файлы по сети медленнее копировались?
кажется, что трасты и проблемы с ДНС могут привести к первому симптому, но никак не ко 2-му.
а у нас забавно, вроде коннект к sql есть, сетевые папки открываются, а обмен с сервером БД работает медленно..

кстати, на фоне затупа этого конкретного действия решили его оптимизировать, оставить только нужные переменные и функции (остальное вынесли в другие действия). сервер БД продолжает обрабатывать каждую строку курсора по три раза, но строк стало намного меньше, и вместо 20 секунд действие отрабатывает за 4 секунды. в нашей сети дак вообще моментально :-)

но сеть - сетью, а сервер БД все равно как то странно выгружает действия, даже при работе из той же сети. кто нить посмотрите пожалуйста, как выглядит загрузка действия в профайлере.
тоже будет картина, похожая на эту:

Код: Выделить всё

EventClass    TextData
RPC:Completed           exec sp_cursor, 19378474832, 40, 3
RPC:Completed           exec sp_cursor, 19378474832, 40, 3
RPC:Completed           exec sp_cursor, 19378474832, 40, 3
RPC:Completed           exec sp_cursor, 19378474832, 40, 4
RPC:Completed           exec sp_cursor, 19378474832, 40, 4
???
сейчас заметил, что какие то строки повторяются по 2 раза, а какие то по три, как в примере.. как так...
лучше день потерять, потом за пять минут долететь!
Loco
Активный участник
Сообщения: 75
Зарегистрирован: 22 фев 2005, 12:33
Используемое ПО: Lotsia PDM PLUS LT

Re: загрузка действия над объектами

Сообщение Loco »

Anderyt писал(а):а "медленно работал доступ по сети" - это как?
долго обнаруживались сетевые ресурсы и долго шло подключение к конкретной машине (например, чтобы увидеть ее сетевые папки)?
Именно.
Anderyt писал(а):но сеть - сетью, а сервер БД все равно как то странно выгружает действия, даже при работе из той же сети. сейчас заметил, что какие то строки повторяются по 2 раза, а какие то по три, как в примере.. как так...
Так exec sp_cursoropen - это внутренние вызовы драйвера, или нет? ;)
Просто в данном случае они отображаются в профайлере, вот вы их и видите. Так что дело не Лоции.
А долго открывается при такой скорости, скорей всего, все же из-за большого времени отклика в сети.
Я бы копал в том направлении.
Loco
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: загрузка действия над объектами

Сообщение Anderyt »

ок, спасибо, попробую.
теххелп тоже что-то говорил про драйвер. но ведь не все данные из лоции берутся с помощью курсоров, где-то вроде есть простые селекты, с возвратом всей таблицы сразу..
лучше день потерять, потом за пять минут долететь!
Loco
Активный участник
Сообщения: 75
Зарегистрирован: 22 фев 2005, 12:33
Используемое ПО: Lotsia PDM PLUS LT

Re: загрузка действия над объектами

Сообщение Loco »

Anderyt писал(а):теххелп тоже что-то говорил про драйвер. но ведь не все данные из лоции берутся с помощью курсоров, где-то вроде есть простые селекты, с возвратом всей таблицы сразу..
Видимо, у Лоции свои резоны. А теххелп спрашивали, что он говорит на эту тему?

И не смешиваете ли Вы в этом вопросе сам язык запросов (селекты SQL) и его внутреннюю реализацию ("потроха" драйвера)? Или я что-то не так понял? :oops:
Loco
Ответить