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

Откуда:
Сообщений: 8
День Добрый!
Для небольшой базы делаю через день Перестроение Индекса и Реорганизацию индекса в 3 часа ночи. Утром проверяю отчетом Физическая статистика индекса и вижу там таблицы которые требуют перестроения и реорганизации.
В логах планы обслуживания показывает что операции проходят без ошибок
20 апр 17, 04:28    [20417001]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
Никола Тесла
Member

Откуда:
Сообщений: 8
https://yadi.sk/i/Gk0i4IoC3H9tCs

К сообщению приложен файл. Размер - 45Kb
20 апр 17, 04:28    [20417002]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Никола Тесла,

Сколько в этих индексах страниц и вы перестраиваете все подряд?
20 апр 17, 05:26    [20417009]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
Никола Тесла
Member

Откуда:
Сообщений: 8
не задумывался об этом, Все твердят что для SQL баз нужны эти процедуры в планах обслуживания баз данных (база около 20 гб) то я и поставил эти планы. Что то делаю не так?
20 апр 17, 05:37    [20417011]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
Никола Тесла
Member

Откуда:
Сообщений: 8
Как вы поняли я новичок с SQL
20 апр 17, 05:49    [20417014]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
Добрый Э - Эх
Guest
Никола Тесла,

не далее месяца назад обсуждалось...
20 апр 17, 06:38    [20417027]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Никола Тесла,

Вы видимо ребилдите все подряд, без проверки нужно это или нет, в этом и проблема.
Если индекс небольшой то, меньше 8 страниц, он использует смешанные экстенты, и соответсвенно после ребилда фрагментация все ровно останется. Плюс нет смысла трогать индексы меньше чем 1000 страниц, т.к. в производительности вы не выиграете.
Вам все говорят вы и делаете, но лучше все таки изучите что вы делаете, может это и нафиг не надо, еще так часто.
К примеру, есть два типа фрагментации: external, т.е. когда физический порядок страниц не соответствует их логическому порядку, и internal это когда страницы в индексы заполнены не полностью, т.е. имеют много свободного места. Когда вы делаете Реорганизацию то физически переупорядачиваются страницы концевого уровня в соответсвии с их логическим порядком, Ребилд просто удаляет и создает новый индекс.
Зачем это нужно? Это улучщит производительность сканирование индекса, т.к. чтение с диска будет последовательным, а не случайным, а это быстрее, плюс может быть использована Read-ahead (это когда SQL читает несколько последовательно расположенных страниц индекса за одну операцию чтения, т.е. что называется на будущее).
External фрагментация может иногда не иметь особого значения, к примеру если у OLTP система которая практически не делает сканов, если у вас SSD, где скорость случайного и последовательного чтения считай одинаковая, или если у вас на диске множество БД которые одновременно генерируют множество I\O операций. Но! internal фрагментация по прежнему важна, т.к. индекс занимает больше места чем нужно, как на диске так и в буфере, соответсвенно там где мы могли прочитать 1 стр. нам придется прочитать 2 к примеру.
20 апр 17, 06:41    [20417028]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
aleksrov,
автор
Плюс нет смысла трогать индексы меньше чем 1000 страниц, т.к. в производительности вы не выиграете.


автор
internal это когда страницы в индексы заполнены не полностью, т.е. имеют много свободного места. Когда вы делаете Реорганизацию то физически переупорядачиваются страницы концевого уровня в соответсвии с их логическим порядком, Ребилд просто удаляет и создает новый индекс.

откуда ж вы это выгребаете....
20 апр 17, 08:47    [20417208]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
aleksrov
Member

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

И что вам не понравилось?
20 апр 17, 09:00    [20417248]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
aleksrov
TaPaK,

И что вам не понравилось?
ну с простого начать: "internal это когда страницы в индексы заполнены не полностью" WAT??? серьёзно? вы сам придумали термин дефрагментации?
20 апр 17, 09:04    [20417263]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
aleksrov
Member

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

Ну да, соглашусь, здесь как то коряво написал, если по научному то: fragmentation is a phenomenon in which storage space is used inefficiently, reducing storage. А порог в 1000 страниц вам чем не понравился та?
20 апр 17, 09:13    [20417287]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
aleksrov
TaPaK,

Ну да, соглашусь, здесь как то коряво написал, если по научному то: fragmentation is a phenomenon in which storage space is used inefficiently, reducing storage. А порог в 1000 страниц вам чем не понравился та?
вы точно не понимаете что делает фрагментация/дефрагментация. Почитайте хоть про диск
https://ru.wikipedia.org/wiki/Дефрагментация_диска

автор
А порог в 1000 страниц вам чем не понравился та?
ну если прикинуть простую таблицу с 2мя int это сильно приблизительно будет 8млн записей. Как вы думаете этого мало для кардинальной ошибки в оценку плана?
20 апр 17, 09:36    [20417348]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
aleksrov
Member

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

Я понимаю что такое фрагментация.
8 млн? Вы как считали? У меня есть простая таблица с 2 int и PK по одному. 713 страниц, 338563 строки.
20 апр 17, 09:59    [20417428]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
aleksrov
TaPaK,

Я понимаю что такое фрагментация.
8 млн? Вы как считали? У меня есть простая таблица с 2 int и PK по одному. 713 страниц, 338563 строки.

ок, этого мало? для соединения получения неоптимального соединения ?? или всё хинтами прибиваем?
20 апр 17, 10:20    [20417517]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
aleksrov
Member

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

Нет, не мало, но это универсальный совет и подойдет для большинства. В иделае я считаю нужно делать как советует Paul, но наврятли автор будет так заморачиваться.
20 апр 17, 10:33    [20417575]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
o-o
Guest
TaPaK
aleksrov
TaPaK,

Я понимаю что такое фрагментация.
8 млн? Вы как считали? У меня есть простая таблица с 2 int и PK по одному. 713 страниц, 338563 строки.

ок, этого мало? для соединения получения неоптимального соединения ?? или всё хинтами прибиваем?

как у вас тут интересно сегодня.
если индекс фрагментирован, время теряется на чтении с диска в порядке индекса,
т.е. когда делается Range Scan (уже скан индекса выбран)
и как же фрагментация индекса может повлиять на тип соединения?
и при чем тут вообще число строк в таблице?
прочесть 1000 страниц это прочесть 8Мб данных. это мизер
20 апр 17, 10:35    [20417584]     Ответить | Цитировать Сообщить модератору
 Re: План обслуживания  [new]
aleksrov
Member

Откуда:
Сообщений: 948
o-o,

Вот я тоже сейчас сижу и думаю, видимо я чего не знаю, как это может повлиять на тип соеденения.
20 апр 17, 10:39    [20417604]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить