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

Откуда: Уфа
Сообщений: 27
Добрый день.
Нужен совет по администрирование 100-гиговой БД.
Сервер Sql Server 2008 без SP

Пробема с следующим: При запуске переиндексирования БД (в джобе) или инициализации добавления большого количества данных сервер (сам сервер, железо) начинает реагировать с очень жуткими тормозами. Создается впечателние что работает не 4-х процессорный Intel Xeon @2.33GHz, а какой-то Celeron 700.

Подскажите, как улучшить работы или в чем может быть проблема.
16 июл 09, 09:13    [7421807]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Speshuric
Member

Откуда: г. Москва
Сообщений: 129
Например, сделать размер файлов и параметры автоприращения такими, чтобы файл почти никогда не менял размер.
Разнести лог, данные, tempdb по разным хранилищам.
Добавить оперативной памяти, настроить её использование так чтобы для других сервисов оставалось достаточно.
16 июл 09, 09:20    [7421827]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Азат Идиятуллин
Member

Откуда: Уфа
Сообщений: 27
Размер базы 100 Gb, сейчас занято около 70 Gb, так что расти есть куда. за последний месяц она подросла максимум на гиг.
Системный базы и рабочая база крутятся на разных жест. диска.
Файл логов и файл данных крутятся на разных разделах, правда того же жест. диска.

Может ли сам жест. диск. давать сбои, которые приводят к этому?
16 июл 09, 09:28    [7421861]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
pacha
Member

Откуда:
Сообщений: 239
Азат Идиятуллин

Пробема с следующим: При запуске переиндексирования БД (в джобе)

А что, перестроение индексов в джобе идет, когда на базе активно работают пользователи?

автор
или инициализации добавления большого количества данных сервер

Тут скорее всего проблема тоже в перестроении индексов. Надо подумать в сторону секционирования больших таблиц
16 июл 09, 09:34    [7421877]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
в чем может быть проблема.


Начните с анализа счетчиков проивзодительности. Процессор, память и особенно дисковая система.
16 июл 09, 09:39    [7421896]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31202
Азат Идиятуллин
Создается впечателние что работает не 4-х процессорный Intel Xeon @2.33GHz, а какой-то Celeron 700.
Интересно, почему это 4-х процессорный Intel Xeon должен работать быстрее какого-то Celeron-а на данных операциях???

Разве процессорная мощь может ускорить работу с дисками?

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

Азат Идиятуллин
Подскажите, как улучшить работы или в чем может быть проблема.
Понять, в чём проблема (трейс, счётчики, анализ кода) и дальше уже её решать.

pacha
Тут скорее всего проблема тоже в перестроении индексов. Надо подумать в сторону секционирования больших таблиц
Или проблема в чём-то другом, а секционирование только всё замедлит.

Лучьше не гадать.
16 июл 09, 09:47    [7421932]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Азат Идиятуллин
Member

Откуда: Уфа
Сообщений: 27
pacha
Азат Идиятуллин

Пробема с следующим: При запуске переиндексирования БД (в джобе)

А что, перестроение индексов в джобе идет, когда на базе активно работают пользователи?


Нет, конечно :)
Кто в здравом уме запустить переиндексовку такого объема данных в рабочее время... ))
16 июл 09, 09:48    [7421937]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31202
Азат Идиятуллин
Нет, конечно :)
Кто в здравом уме запустить переиндексовку такого объема данных в рабочее время... ))
Мы запускаем - нету у нас нерабочего времени :-(

Только не "переиндексовку" (у нас всё-таки не аксес), а дефрагментацию и обновление статистики.

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

Ну и про ликвидацию узких мест не забудьте.
16 июл 09, 09:58    [7421993]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Азат Идиятуллин
Member

Откуда: Уфа
Сообщений: 27
pacha
Азат Идиятуллин

[quot автор] или инициализации добавления большого количества данных сервер

Тут скорее всего проблема тоже в перестроении индексов. Надо подумать в сторону секционирования больших таблиц


Неа...
Обращение и поиск по одной таблице занимает менее 500 миллисекунд. В одной таблице может быть очень большое кол-во строк (счет от 100000 до нескольких миллионов).
Таблиц более 200
Одновременно обращаются максимум к 50-70.
Есть несколько таблиц, к которымобращаются чаще, чем к другим.
Но, проблем при выполнение запросов типа "select * from table_name where C01 like '%бла-бла-бла%'" в таблице на несколько миллионов записей нет никаких (тьфу-тьфу-тьфу). В среднем они выполняются за 100-400 миллисекунд.

Проблема заключается именно в перестроение всех индексов, в т.ч. и Full-Text.
(перестроение индекса на одной таблице выполняется быстро и никаких повисании нет не зависимо от кол-ва строк)
16 июл 09, 10:07    [7422048]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
vino
Member

Откуда:
Сообщений: 1191
Азат Идиятуллин
Файл логов и файл данных крутятся на разных разделах, правда того же жест. диска
это, конечно, ошибка. У вас какой RAID?
Сначала ищите узкое место - вам об этом уже сказали
pkarklin
Начните с анализа счетчиков проивзодительности. Процессор, память и особенно дисковая система.
16 июл 09, 11:27    [7422642]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
автор
В одной таблице может быть очень большое кол-во строк (счет от 100000 до нескольких миллионов)
Это просто смешной мизер.....
16 июл 09, 12:20    [7423103]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Азат Идиятуллин
Member

Откуда: Уфа
Сообщений: 27
vino
Азат Идиятуллин
Файл логов и файл данных крутятся на разных разделах, правда того же жест. диска
это, конечно, ошибка. У вас какой RAID?
Сначала ищите узкое место - вам об этом уже сказали
pkarklin
Начните с анализа счетчиков проивзодительности. Процессор, память и особенно дисковая система.


RAID 1+0 (4 SAS диска по 145 GB)
16 июл 09, 12:43    [7423286]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Азат Идиятуллин
RAID 1+0 (4 SAS диска по 145 GB)


Смотрите счетчики дисковой активности. Особенно длину очереди.
16 июл 09, 12:51    [7423366]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Человекэтозвучитгордо
Guest
Азат Идиятуллин,
скажите:
1. Жуткие тормоза - это сколько по времени?
2. Как часто вы делаете реиндексацию?
3. На сколько при реиндексации растет лог?

Для уменьшения нагрузки можно реиндексировать не все таблицы, а только те, у которых фрагментация более 25%.

По собственному опыту могу сказать, что дефрагментация делается не намного меньше времени, чем реиндексация, а эффект от дефрагментации+обновления статистик гораздо меньше, чем от реиндексации.
16 июл 09, 17:17    [7425639]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Человекэтозвучитгордо
Guest
Азат Идиятуллин,
у нас на 77 ГБ базе реиндексация длится примерно 2,5 часа. Конфигурация сервера схожая с вашей. Только таблиц 3100.

А вот на базе 350 ГБ реиндексация уже сутки идет. И это при том, что:
1. сервер в 2 раза мощнее.
2. реиндексируются только таблицы с большой фрагментацией.

Так что выходит, что рост далеко не линейный. Делайте выводы :)
16 июл 09, 17:25    [7425699]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Человекэтозвучитгордо
Guest
И вообще, что так все про счетчики заладили не понимаю. Все равно вряд ли железку сменят, кризис же :)
Ясен пень, что диск тупит, к гадалке не ходи.
Надо тщательно проверить настройки рэйда, особенно кэширование. И чтобы смотрел человек хорошо(!), разбирающийся в серверах.
Другое дело почему он так тупит, сюда надо копать, а не на счетчики с очередью диска. ИМХО.
16 июл 09, 17:32    [7425750]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10716
Блог
Человекэтозвучитгордо
И вообще, что так все про счетчики заладили не понимаю. Все равно вряд ли железку сменят, кризис же :)
Ясен пень, что диск тупит, к гадалке не ходи.
Надо тщательно проверить настройки рэйда, особенно кэширование. И чтобы смотрел человек хорошо(!), разбирающийся в серверах.
Другое дело почему он так тупит, сюда надо копать, а не на счетчики с очередью диска. ИМХО.


Именно для этого автора вопроса и посылают к счётчикам дисковых очередей того диска, на который он положил журнал и данные. Когда перестраиваются индексы, это сопровождается журналированием, т.е. диск должен захлебнуться по определению... Подтвердив сей факт с помощью счётчиков - станет понятно, что файл журнала нужно перенести на другой физически диск, а это (как раз) может оказаться возможным без внесения изменений в железо.

А то, что Вы советуете - это как раз дело десатое...
16 июл 09, 17:56    [7425892]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Человекэтозвучитгордо
Guest
Александр,
я ведь не спорю, что надо смотреть на счетчики. Надо, конечно. Другое дело, что автор с этой информацией делать будет? Вы, например, предлагаете перенести журнал на физически другой диск. Согласен с Вами полностью, можно попробовать, если конфигурация дисковой подсистемы позволит. Но всё же полагаю, что решать проблему чисто железячными методами - тупик, о чем и говорю.
А для начала нужно всё-таки понять сколько времени выполняется реиндексация.
16 июл 09, 18:28    [7426035]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
Человекэтозвучитгордо
А для начала нужно всё-таки понять сколько времени выполняется реиндексация.
Ну выполняется она три часа? Дальше что? Или выполняется она шесть часов? Тут что дальше?

Сообщение было отредактировано: 16 июл 09, 18:29
16 июл 09, 18:29    [7426045]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
Человекэтозвучитгордо
Азат Идиятуллин,
у нас на 77 ГБ базе реиндексация длится примерно 2,5 часа. Конфигурация сервера схожая с вашей. Только таблиц 3100.

А вот на базе 350 ГБ реиндексация уже сутки идет. И это при том, что:
1. сервер в 2 раза мощнее.
2. реиндексируются только таблицы с большой фрагментацией.

Так что выходит, что рост далеко не линейный. Делайте выводы :)
Здесь не объем роляет, а дисковая подсистема и нагрузка на нее.
16 июл 09, 18:34    [7426064]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31202
Человекэтозвучитгордо
у нас на 77 ГБ базе реиндексация длится примерно 2,5 часа. Конфигурация сервера схожая с вашей. Только таблиц 3100.

А вот на базе 350 ГБ реиндексация уже сутки идет. И это при том, что:
1. сервер в 2 раза мощнее.
2. реиндексируются только таблицы с большой фрагментацией.

Так что выходит, что рост далеко не линейный. Делайте выводы :)
Выводы такие - сервер не в 2 раза мощнее. Правильно?

Определение мощности сервера - это величина, обратно пропрциональная времени выполнения операции.

А то, может, вы мощность сервера меряете так-же, как автор топика, по процессорам? :-)
17 июл 09, 08:36    [7427181]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Азат Идиятуллин
Member

Откуда: Уфа
Сообщений: 27
Человекэтозвучитгордо
Азат Идиятуллин,
скажите:
1. Жуткие тормоза - это сколько по времени?
2. Как часто вы делаете реиндексацию?
3. На сколько при реиндексации растет лог?


1. Процесс запустился в 21.00. В 22.00 приконектиться к серверу через RDC невозможно. Когда пришел на работу к 9 утра - ситуация не изменилась. Сервер не отвечал ни через RDC, ни через SQLSMS, ни через программные запросы. На экране (со слов админа) все двигалось крайне медленно. Хотя раньше все было нормально. И загрузка данных (это по 3-4 таблицы с 2-3 млн строк данных в каждой и больше) не вызывало проблем.
После рестарта сервер автоматом запустил индексацию FullText и заглох снова. С трудом удалось (пришлось сделать 5-6 перезагрузок) убрать таблицы из FullText и запустить сервер в нормальную работу.
2. Раз в месяц.
3. Не обращал внимания :(. Но база находится в режиме Simple.

По счетчикам идет большая нагрузка на винты. Процессоры отдыхают (в прямом смысле отдыхают).
17 июл 09, 12:09    [7428393]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Человекэтозвучитгордо
Guest
Гавриленко Сергей Алексеевич
Человекэтозвучитгордо
А для начала нужно всё-таки понять сколько времени выполняется реиндексация.
Ну выполняется она три часа? Дальше что? Или выполняется она шесть часов? Тут что дальше?


Как что? Может автор только думает, что долго, а на самом деле нормально.
17 июл 09, 12:30    [7428542]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Человекэтозвучитгордо
Guest
alexeyvg
Человекэтозвучитгордо
у нас на 77 ГБ базе реиндексация длится примерно 2,5 часа. Конфигурация сервера схожая с вашей. Только таблиц 3100.

А вот на базе 350 ГБ реиндексация уже сутки идет. И это при том, что:
1. сервер в 2 раза мощнее.
2. реиндексируются только таблицы с большой фрагментацией.

Так что выходит, что рост далеко не линейный. Делайте выводы :)
Выводы такие - сервер не в 2 раза мощнее. Правильно?

Определение мощности сервера - это величина, обратно пропрциональная времени выполнения операции.

А то, может, вы мощность сервера меряете так-же, как автор топика, по процессорам? :-)


Почему-то мне кажется, что Вы придираетесь к словам. Я думал, очевидно, что выражение "сервер в 2 раза мощнее" фигуральное. И так же очевидно, с моей точки зрения опять же, что я хотел подчеркнуть нелинейное замедление скорости выполнения реиндексации, а остальное только факты для подтверждения этой мысли. Сама же мысль мне кажется полезной для автора, поэтому я ее изложил.
17 июл 09, 12:37    [7428581]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет по базе данных большого размера (100 Gb)  [new]
Человекэтозвучитгордо
Guest
Азат Идиятуллин
Человекэтозвучитгордо
Азат Идиятуллин,
скажите:
1. Жуткие тормоза - это сколько по времени?
2. Как часто вы делаете реиндексацию?
3. На сколько при реиндексации растет лог?


1. Процесс запустился в 21.00. В 22.00 приконектиться к серверу через RDC невозможно. Когда пришел на работу к 9 утра - ситуация не изменилась. Сервер не отвечал ни через RDC, ни через SQLSMS, ни через программные запросы. На экране (со слов админа) все двигалось крайне медленно. Хотя раньше все было нормально. И загрузка данных (это по 3-4 таблицы с 2-3 млн строк данных в каждой и больше) не вызывало проблем.
После рестарта сервер автоматом запустил индексацию FullText и заглох снова. С трудом удалось (пришлось сделать 5-6 перезагрузок) убрать таблицы из FullText и запустить сервер в нормальную работу.
2. Раз в месяц.
3. Не обращал внимания :(. Но база находится в режиме Simple.

По счетчикам идет большая нагрузка на винты. Процессоры отдыхают (в прямом смысле отдыхают).


1. Ошибок после выполнения никаких не выдает?
2. FullText вам нужен? Если не нужен, отключите, он добавляет проблем.
3. Советую переключить модель восстановления на Full и посмотреть что станет с логом после реиндексации. На сколько вырастет лог? На сколько изменится время реиндексации?
4. Еще раз советую все-таки не реиндексировать таблицы с низким процентом фрагментации. Это может очень существенно снизить нагрузку.
5. Делаете ли вы shrinkdatabase/shrinkfile после реиндексации?
6. Еще я попробовал бы поставить SQL 2005 + sp3 и на нем погонять, т.к. новое ПО далеко не всегда лучше старого, а багов на порядок меньше.
7. Если ничего не поможет, то надо реиндексировать таблицы по одной и искать "неверную". А может и сразу этим заняться.
17 июл 09, 12:51    [7428674]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить