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

Откуда:
Сообщений: 64
Помогите!!!
Есть сервер MS SQL2008R2 10.50.1600, на нем база данных в обычных случаях нормально работают 20 - 30 пользователей. Производительность устраивает. Иногда требуется выполнить заливку данных в табличку (примерно 8 000 000 - 15 000 000 записей, размер 2- 5 GB) , уровень изоляции - SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED.
Пока выполняется транзакция (30-50 минут) невозможно получить доступ даже к системным таблицам (например: посмотреть список хранимых процедур), загрузка железа до 60%. В чем может быть косяк? (Настройки сервера по умолчанию, если кому надо сброшу.) Все стандартные рекомендации испробовал, не помогает.
13 сен 11, 11:42    [11268042]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Vicont_rtf,

а что вы относите к стандартным рекомендациям? по колесу стучали и стекло протерли или чего по серьезней?:)

смотрите счетчики производительности, 60% загрузка железа это что значит?

каким образом происходит вставка записей?

и почему вы вообще решили что это косяк?
13 сен 11, 11:45    [11268069]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Crimean
Member

Откуда:
Сообщений: 13147
один диск и тот сата?
или заливка по сети и кривые дрова на сетевуху
13 сен 11, 11:46    [11268076]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
compline-ufa
Member

Откуда: Уфа
Сообщений: 1
тоже замечал, что когда 2008 SQL чем то занят, то другим его не озадачить...
13 сен 11, 11:47    [11268083]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
compline-ufa,

вы его просто готовить не умеете:)
13 сен 11, 11:49    [11268101]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Vicont_rtf
Member

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

1. Я щитаю, что не нормально когда нельзя обратится к объектам БД, по этому косяк.
2. Загрузка процессоров ниже 60 %, очереди к жесткому диску почти нет (поскольку выполняется только 1 запрос), сеть 20%
3. Вставка такая: insert имя таблицы (список полей)
select (список полей) from OPENQUERY( имя_связанного_сервера, ' Select список полей from таблица ')
13 сен 11, 12:03    [11268219]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
В данном случае скорость отдачи данных не велика, и это ограничивающий фактор, принимающий сервер "Гуляет".
13 сен 11, 12:07    [11268275]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vicont_rtf
1. Я щитаю, что не нормально когда нельзя обратится к объектам БД, по этому косяк.

Даже если эти объекты специально заблокированны в другом коннекте ?

Vicont_rtf
3. Вставка такая: insert имя таблицы (список полей)
select (список полей) from OPENQUERY( имя_связанного_сервера, ' Select список полей from таблица ')

И что в этой конструкции создает проблему - insert или select ?
13 сен 11, 12:08    [11268283]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Vicont_rtf
WarAnt ,

1. Я щитаю, что не нормально когда нельзя обратится к объектам БД, по этому косяк.
2. Загрузка процессоров ниже 60 %, очереди к жесткому диску почти нет (поскольку выполняется только 1 запрос), сеть 20%
3. Вставка такая: insert имя таблицы (список полей)
select (список полей) from OPENQUERY( имя_связанного_сервера, ' Select список полей from таблица ')


1. ну дак посмотрите кто блокирует ваши запросы к объектам бд и сразу станет понятно кто косяк.
2. то что выполняется всего один запрос никак не означает что очереди к диску быть не должно, но раз выговорите что очереди нет значит и тормозов нет, а есть банальные блокировки ресурсов.
3. план выполнения вы смотрели и список блокировок при таком запросе, если вы вставляете с удаленного сервера много миллионов строк за раз то скорее всего имеете кучу блокировок в том числе и темповской базы отсюда и мифические тормоза.
13 сен 11, 12:09    [11268298]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
Да, все верно, блокировки, но блокируются системные таблицы (даже для чтения) хранящие статитику и список объектов БД.
в частности sys.objects, по этому нельзя получить список хранимых процедур.
Пользователи модификации БД не производят, причин для блокировки данной таблицы я не вижу.
13 сен 11, 12:20    [11268394]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vicont_rtf
Да, все верно, блокировки, но блокируются системные таблицы (даже для чтения) хранящие статитику и список объектов БД.
в частности sys.objects, по этому нельзя получить список хранимых процедур.

Сервер не блокирует больше, чем ему надо. Или больше, чем ему указали блокировать
13 сен 11, 12:32    [11268494]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
Кто-нибудь знает как изменить уровень изоляции системных таблиц?
13 сен 11, 12:36    [11268535]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vicont_rtf
Кто-нибудь знает как изменить уровень изоляции системных таблиц?

- уровень изоляции есть у сессии, а не у таблиц
- системные представления это вовсе не таблицы
- зачем вы блокируете то, что не нужно
13 сен 11, 12:40    [11268567]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
Я наверное запутался, так если я ошибусь поправьте:
1. На сервере идет вставка данных в таблицу XXX. (Больше ничего - факт)
2. Сервер по каким-то своим причинам на время выполнения транзакции блокирует системные таблицы (sys.objects и еще несколько) вероятно готовится к обновлению статистики.
3. Вопрос: Как так можно их заблокировать чтобы они не были доступны для чтения? а главное для каких нужд?
На мой взгляд это косяк MS SQL Server 2008R2.
13 сен 11, 12:53    [11268684]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
любопытный по умолчанию
Guest
Vicont_rtf
(Настройки сервера по умолчанию, если кому надо сброшу.)

давайте.
и раскладку файловых групп применительно к обновляемым и системным таблицам.
и скрипты FK+индексы+триггеры на обновляемую таблицу.
13 сен 11, 12:53    [11268687]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
любопытный по умолчанию
Guest
Vicont_rtf
2. Сервер по каким-то своим причинам на время выполнения транзакции блокирует системные таблицы (sys.objects и еще несколько) вероятно готовится к обновлению статистики.

в сиспроцессах стоит blocked=1? или в sp_lock про них что-то написано? или вы пробуете угадать диагноз?
13 сен 11, 12:55    [11268700]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vicont_rtf
2. Сервер по каким-то своим причинам на время выполнения транзакции блокирует системные таблицы (sys.objects и еще несколько) вероятно готовится к обновлению статистики.

Еще раз.
sys.objects - это представление, а не таблица
13 сен 11, 12:55    [11268703]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
любопытный по умолчанию
Guest
Vicont_rtf
блокируются системные таблицы (даже для чтения)

тут вот еще про "утечки памяти" похожая ветка.
https://www.sql.ru/forum/actualthread.aspx?tid=875792
много полезного обсуждено
13 сен 11, 13:04    [11268766]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
Конфигурация сервера

К сообщению приложен файл (TMP6C0B.htm - 28Kb) cкачать
13 сен 11, 13:06    [11268779]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
любопытный по умолчанию
Guest
Vicont_rtf,
а можете как-то так?
+
сиквельные настройки

чтоб без мозгосекса со скачиванием.
13 сен 11, 13:08    [11268793]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
Таблица: тригерров нет, индексов тоже (если не щитать PRIMARY KEY CLUSTERED (KeySbor))


CREATE TABLE dbo.sbor
(
KeySbor numeric(16,0) IDENTITY,
KeyKrt numeric(16,0) NULL,
KeyZkrt numeric(8,0) NULL,
VidSbr int NULL,
DtRaskr datetime NULL,
nomot varchar(8) NULL,
sm numeric(18,3) DEFAULT 0 NULL,
sm_nds numeric(18,3) DEFAULT 0 NULL,
sm_nbf numeric(18,3) DEFAULT 0 NULL,
txt varchar(10) NULL,
StNDS int NULL,
keykrt_minus numeric(16,0) NULL,
p_noVst tinyint DEFAULT 0 NULL,
curs numeric(15,2) DEFAULT 0 NULL,
sm_nds_dkc numeric(18,3) DEFAULT 0 NULL,
CONSTRAINT PK_SBOR
PRIMARY KEY CLUSTERED (KeySbor)
)
go
13 сен 11, 13:10    [11268813]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
Server Configuration
Parameter Value Run Min Max Dynamic
access check cache bucket count 0 0 0 16384 Yes
access check cache quota 0 0 0 2147483647 Yes
Ad Hoc Distributed Queries 0 0 0 1 Yes
affinity I/O mask 0 0 -2147483648 2147483647 No
affinity mask 0 0 -2147483648 2147483647 Yes
Agent XPs 1 1 0 1 Yes
allow updates 0 0 0 1 Yes
awe enabled 0 0 0 1 No
backup compression default 0 0 0 1 Yes
blocked process threshold (s) 0 0 0 86400 Yes
c2 audit mode 0 0 0 1 No
clr enabled 0 0 0 1 Yes
common criteria compliance enabled 0 0 0 1 No
cost threshold for parallelism 5 5 0 32767 Yes
cross db ownership chaining 0 0 0 1 Yes
cursor threshold -1 -1 -1 2147483647 Yes
Database Mail XPs 0 0 0 1 Yes
default full-text language 1049 1049 0 2147483647 Yes
default language 21 21 0 9999 Yes
default trace enabled 1 1 0 1 Yes
disallow results from triggers 0 0 0 1 Yes
EKM provider enabled 0 0 0 1 No
filestream access level 0 0 0 2 Yes
fill factor (%) 0 0 0 100 No
ft crawl bandwidth (max) 100 100 0 32767 Yes
ft crawl bandwidth (min) 0 0 0 32767 Yes
ft notify bandwidth (max) 100 100 0 32767 Yes
ft notify bandwidth (min) 0 0 0 32767 Yes
index create memory (KB) 0 0 704 2147483647 Yes
in-doubt xact resolution 0 0 0 2 Yes
lightweight pooling 0 0 0 1 No
locks 0 0 5000 2147483647 No
max degree of parallelism 0 0 0 32 Yes
max full-text crawl range 4 4 0 256 Yes
max server memory (MB) 2147483647 2147483647 16 2147483647 Yes
max text repl size (B) 65536 65536 -1 2147483647 Yes
max worker threads 0 0 128 32767 No
media retention 0 0 0 365 Yes
min memory per query (KB) 1024 1024 512 2147483647 Yes
min server memory (MB) 0 8 0 2147483647 Yes
nested triggers 1 1 0 1 Yes
network packet size (B) 4096 4096 512 32767 Yes
Ole Automation Procedures 0 0 0 1 Yes
open objects 0 0 0 2147483647 No
optimize for ad hoc workloads 0 0 0 1 Yes
PH timeout (s) 60 60 1 3600 Yes
precompute rank 0 0 0 1 Yes
priority boost 0 0 0 1 No
query governor cost limit 0 0 0 2147483647 Yes
query wait (s) -1 -1 -1 2147483647 Yes
recovery interval (min) 0 0 0 32767 Yes
remote access 1 1 0 1 No
remote admin connections 0 0 0 1 Yes
remote login timeout (s) 20 20 0 2147483647 Yes
remote proc trans 0 0 0 1 Yes
remote query timeout (s) 600 600 0 2147483647 Yes
Replication XPs 0 0 0 1 Yes
scan for startup procs 0 0 0 1 No
server trigger recursion 1 1 0 1 Yes
set working set size 0 0 0 1 No
show advanced options 0 0 0 1 Yes
SMO and DMO XPs 1 1 0 1 Yes
SQL Mail XPs 0 0 0 1 Yes
transform noise words 0 0 0 1 Yes
two digit year cutoff 2049 2049 1753 9999 Yes
user connections 0 0 0 32767 No
user options 0 0 0 32767 Yes
xp_cmdshell 0 0 0 1 Yes
13 сен 11, 13:16    [11268856]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
любопытный по умолчанию
Guest
Vicont_rtf
Таблица: тригерров нет, индексов тоже (если не щитать PRIMARY KEY CLUSTERED (KeySbor))

во, тепленькая инфа пошла.

кстати, а как вы поняли что не удается обратиться к системным вьюхам? селекты выполняли или в object explorer'е узлы разворачивали (а они не разворачивались)?
из ssms не работает или с клиента? ssms на той же тачке на которой сервак крутится запущен или с удаленной машины?
13 сен 11, 13:19    [11268881]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
Я бы проверила включен ли AD аккаунт под которым работает ваш SQL Server в полиси Lock Pages in Memory.
(если нет - включите и перестартуйте SQL сервер)

И второе, каково автоприращение файлов данных и лога у Вашей базы? Небось 1МБ, как по умолчанию?

Ну и база, надеюсь не на диске C ?

(это так, пальцем в небо).
13 сен 11, 13:25    [11268930]     Ответить | Цитировать Сообщить модератору
 Re: Производительность MS SQL 2008R2  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Vicont_rtf
Иногда требуется выполнить заливку данных в табличку (примерно 8 000 000 - 15 000 000 записей, размер 2- 5 GB) ...
Пока выполняется транзакция (30-50 минут)
Зачем лить 5 Гб в одной часовой транзакции?
13 сен 11, 13:27    [11268963]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить