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

Откуда:
Сообщений: 13
Здравствуйте, уважаемые фрумчане!

Есть БД на MS SQL
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64)   Sep 21 2011 22:45:45   Copyright (c) 1988-2008 Microsoft Corporation  Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (VM)
, с которой работает клиентское ПО (Delphi 7, ADO).
Для аутентификации пользователей используются механизмы MSSQL, у каждого пользователя своя учетка на сервере.

Проблема следующая:
Выполнение одного и того же запроса, сделанного из-под разных учетных записей, занимает различное время. Время выполнения отличается на порядок, от 2-3 секунд (норма) до нескольких минут и более.

В запросах есть завязки на текущего пользователя, для определения уровня доступа.
Пересоздание учетной записи (удаляем, и создаем снова, с тем же именем) проблему снимает.

MS SQL пользуюсь давно, но мало опыта в оптимизации, и решении проблем производительности.

Направьте пожалуйста, в какую строну копать?

заранее благодарю
1 окт 14, 09:34    [16642200]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Glory
Member

Откуда:
Сообщений: 104760
Это воспроизводится в других приложениях ?
В ManagementStudio, например
1 окт 14, 09:41    [16642227]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Как вариант у вас внутри движка БД реализованна логика "прав" пользователя на обьекты и все запросы сначала запрашивают список прав .. там не знаю на просмотр документов и колонок по дукументу.. и как вариант у 1-го пользователя права на 4 документа и второго на 100000 документов.... НО ето как один из возможных вариантов. Что у вас в БД кроме вас никто не знает
1 окт 14, 10:21    [16642431]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
MihMat
Member

Откуда:
Сообщений: 13
Не догадался сразу проверить. А на данный момент нет проблемных учеток
1 окт 14, 10:36    [16642529]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
MihMat
Member

Откуда:
Сообщений: 13
Maxx
Как вариант у вас внутри движка БД реализованна логика "прав" пользователя на обьекты и все запросы сначала запрашивают список прав .. там не знаю на просмотр документов и колонок по дукументу.. и как вариант у 1-го пользователя права на 4 документа и второго на 100000 документов.... НО ето как один из возможных вариантов. Что у вас в БД кроме вас никто не знает


проблема решается пересозданием учетки, значит не в этом дело
1 окт 14, 10:37    [16642535]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
MihMat
В запросах есть завязки на текущего пользователя, для определения уровня доступа.
Пересоздание учетной записи (удаляем, и создаем снова, с тем же именем) проблему снимает.

MihMat
проблема решается пересозданием учетки, значит не в этом дело

Ой ли :)
1 окт 14, 10:51    [16642665]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
MihMat
Member

Откуда:
Сообщений: 13
Maxx
MihMat
В запросах есть завязки на текущего пользователя, для определения уровня доступа.
Пересоздание учетной записи (удаляем, и создаем снова, с тем же именем) проблему снимает.

MihMat
проблема решается пересозданием учетки, значит не в этом дело

Ой ли :)


Хм. Имя связанной учетной записи указывается в таблице данных пользователя, на которую в свою очередь завязаны права доступа. При пересоздании учетной записи на сервере, все остальные данные в базе остаются нетронутыми. Но производительность возвращается в норму. Отсюда и вывод, что не не в том дело.
Что я упускаю?
1 окт 14, 11:21    [16642985]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Наверняка запрос не "один и тот же".
1 окт 14, 11:22    [16642999]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
MihMat
Что я упускаю?

может не оптимальный план запроса для ф-ции которая расчитывает права для учетки ?
1 окт 14, 11:22    [16643005]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Glory
Member

Откуда:
Сообщений: 104760
MihMat
Хм. Имя связанной учетной записи указывается в таблице данных пользователя, на которую в свою очередь завязаны права доступа. При пересоздании учетной записи на сервере, все остальные данные в базе остаются нетронутыми. Но производительность возвращается в норму. Отсюда и вывод, что не не в том дело.
Что я упускаю?

У вас что медленно работало то ?
Опеределение прав пользователя или конкретный запрос к таблицам ?
1 окт 14, 11:23    [16643012]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
MihMat
Member

Откуда:
Сообщений: 13
Владислав Колосов
Наверняка запрос не "один и тот же".

в клиенте есть предустановленные фильтры данных. Запросы генерируются идентичные, но время выполнения может отличаться в разы.
1 окт 14, 11:48    [16643241]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
MihMat
в клиенте есть предустановленные фильтры данных. Запросы генерируются идентичные, но время выполнения может отличаться в разы.

снимайте тарссу и запускайте в студии..... разница будет ?
1 окт 14, 11:49    [16643250]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Glory
Member

Откуда:
Сообщений: 104760
MihMat
Запросы генерируются идентичные, но время выполнения может отличаться в разы.

В эти якобы идентичные запросы передаются разные параметры наверное ?
1 окт 14, 11:50    [16643254]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
MihMat
Member

Откуда:
Сообщений: 13
Maxx
MihMat
Что я упускаю?

может не оптимальный план запроса для ф-ции которая расчитывает права для учетки ?

постоянно неоптимальный план для конкретного пользователя? маловероятно, мне кажется
1 окт 14, 11:50    [16643257]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
MihMat,

у меня просто предположение... ответ даст трасса и запуск со студии +просмотр плана
1 окт 14, 11:55    [16643292]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
MihMat
Member

Откуда:
Сообщений: 13
Glory
MihMat
Хм. Имя связанной учетной записи указывается в таблице данных пользователя, на которую в свою очередь завязаны права доступа. При пересоздании учетной записи на сервере, все остальные данные в базе остаются нетронутыми. Но производительность возвращается в норму. Отсюда и вывод, что не не в том дело.
Что я упускаю?

У вас что медленно работало то ?
Опеределение прав пользователя или конкретный запрос к таблицам ?


конкретный запрос к таблицам. Но запросы, повторюсь, делаются с учетом прав доступа.
1 окт 14, 11:55    [16643293]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Glory
Member

Откуда:
Сообщений: 104760
MihMat
Но запросы, повторюсь, делаются с учетом прав доступа.

Это, извините, как ?

select * from mytable делается с "учетом прав доступа" ?
1 окт 14, 11:59    [16643329]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
типа так.. как я сее виджу
select *
from dbo.table
  inner join dbo.fn_getUserPermissions(@user) on .....
1 окт 14, 12:02    [16643361]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
MihMat
Member

Откуда:
Сообщений: 13
Glory
MihMat
Запросы генерируются идентичные, но время выполнения может отличаться в разы.

В эти якобы идентичные запросы передаются разные параметры наверное ?

запросы идентичные с учетом параметров.
Я в самом начале упрощение сделал, говоря про один запрос. На деле, ВСЕ запросы конкретного пользователя выполняются очень долго.
Сейчас нет проблемных пользователей, поэтому трассировку не могу сделать
1 окт 14, 12:04    [16643384]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Glory
Member

Откуда:
Сообщений: 104760
MihMat
запросы идентичные с учетом параметров.

Вы про число параметров или про их значения ?
1 окт 14, 12:05    [16643395]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
MihMat
Сейчас нет проблемных пользователей, поэтому трассировку не могу сделать

сие ,коечно ,аргумент жележный
1 окт 14, 12:05    [16643396]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
MihMat
Member

Откуда:
Сообщений: 13
Maxx
типа так.. как я сее виджу
select *
from dbo.table
  inner join dbo.fn_getUserPermissions(@user) on .....

все верно
1 окт 14, 12:09    [16643423]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
Glory
Member

Откуда:
Сообщений: 104760
MihMat
Maxx
типа так.. как я сее виджу
select *
from dbo.table
  inner join dbo.fn_getUserPermissions(@user) on .....


все верно

Вообще-то это разные запросы будут
1 окт 14, 12:10    [16643444]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
MihMat
Member

Откуда:
Сообщений: 13
Maxx
MihMat
Сейчас нет проблемных пользователей, поэтому трассировку не могу сделать

сие ,коечно ,аргумент жележный

трассировку, конечно, можно сделать. Но что это даст, если проблем на данный момент нет?
1 окт 14, 12:11    [16643457]     Ответить | Цитировать Сообщить модератору
 Re: производительность различна под разными учетными записями  [new]
MihMat
Member

Откуда:
Сообщений: 13
Glory
MihMat
пропущено...

все верно

Вообще-то это разные запросы будут

а выполнить его от пользователя с одинаковым именем (до и после пересоздания)?
1 окт 14, 12:13    [16643473]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить