powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
17 сообщений из 17, страница 1 из 1
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39839959
omarushchak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, всем!

Если имеется таблица с кластеризированным индексом, которая находится под нагрузкой (вставки и обновления). Как избежать разбиения страниц. Как вариант сделать низкий фактор заполнения страниц. Как мне кажется, это приведет к росту числа страниц и объему базы данных или я не прав?
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39839962
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
omarushchakДобрый день, всем!

Если имеется таблица с кластеризированным индексом, которая находится под нагрузкой (вставки и обновления). Как избежать разбиения страниц. Как вариант сделать низкий фактор заполнения страниц. Как мне кажется, это приведет к росту числа страниц и объему базы данных или я не прав?

Вставлять только в конец индекса, при апдейтах не увеличивать размер записи
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840020
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А кластеризованный индекс у вас по полю какого типа?
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840031
omarushchak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
uaggsterА кластеризованный индекс у вас по полю какого типа?

varchar
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840034
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
omarushchakКак вариант сделать низкий фактор заполнения страниц. Как мне кажется, это приведет к росту числа страниц и объему базы данных или я не прав?Да, размер увеличится, но зато не будет разбиения. И делать редилд кластерного индекса, когда страницы заполнятся.
Ну, или перепроектировать модель данных, если таблитца очень большая.
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840038
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нуу... Если бы стояла задача кровь из носу добиться снижения разбиения страниц, я бы:
1. Изменил бы ключ с varchar на int identity.
2. Построил бы уникальный индекс по "бывшему" ключевому полю varchar.
3. Но, предварительно, заменил бы все поля varchar на char.

... и тогда условия msLex - выполнятся автоматически.
:-)
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840039
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgomarushchakКак вариант сделать низкий фактор заполнения страниц. Как мне кажется, это приведет к росту числа страниц и объему базы данных или я не прав?Да, размер увеличится, но зато не будет разбиения. И делать редилд кластерного индекса, когда страницы заполнятся.
Ну, или перепроектировать модель данных, если таблитца очень большая.
и как часто вы предлагаете это делать? 3 инсёрта один ребилд? филфактор может помогать при достаточно распределённых вставках, и зачем тогда вообще такой кластарный?
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840041
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а varchar это вы так guid храните?
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840049
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKи как часто вы предлагаете это делать? 3 инсёрта один ребилд? филфактор может помогать при достаточно распределённых вставках, и зачем тогда вообще такой кластарный?

Ну, например, все обращения к данным идут по естественному ключу, распределение которого, по природе своей, равномерно; например, какой-либо хеш (md5, sha и т.п.)

Плюс ко всему, расщеплению подвержены не только кластерные индексы.
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840050
omarushchak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

точно
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840051
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLexTaPaKи как часто вы предлагаете это делать? 3 инсёрта один ребилд? филфактор может помогать при достаточно распределённых вставках, и зачем тогда вообще такой кластарный?

Ну, например, все обращения к данным идут по естественному ключу, распределение которого, по природе своей, равномерно; например, какой-либо хеш (md5, sha и т.п.)

Плюс ко всему, расщеплению подвержены не только кластерные индексы.
не корректно написал последнюю часть. Вопрос как к такому ключу пришли - избавлялись от войны за полслуднюю страницу как советуют переходом на int identity или просто решили что поле cityName будет ключём
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840053
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKфилфактор может помогать при достаточно распределённых вставкахДа, конечно, при распределённых. А иначе и разбиения не будет, если не распределённые (точнее, разбиение не будет мешать).
TaPaKи как часто вы предлагаете это делать? 3 инсёрта один ребилд?Когда средняя средняя заполненность страниц вырастет до некоего неприемлемого значения (определить интуитивно) :-)
TaPaKи зачем тогда вообще такой кластарный?Например, этот кластерный создан сторонней компанией-разработчиком, и придётся с этим жить. Ну, или полномочный менеджер должен издать приказ "я всё про***, приказываю переделать систему, а меня уволить".
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840055
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

авторДа, конечно, при распределённых. А иначе и разбиения не будет, если не распределённые (точнее, разбиение не будет мешать).
у тс guid и мешает?

вставка через NEWSEQUENTIALID ?
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840057
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKне корректно написал последнюю часть. Вопрос как к такому ключу пришли - избавлялись от войны за полслуднюю страницу как советуют переходом на int identity или просто решили что поле cityName будет ключём
Насчет кластерного согласен, что в большинстве случаев такой ключ будет не лучшим решение (хотя и тут есть исключения), но если все равно нужен доступ по такому полю - индекс нужен, и он тоже будет расщепляться.
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840065
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgНапример, этот кластерный создан сторонней компанией-разработчиком, и придётся с этим жить. Ну, или полномочный менеджер должен издать приказ "я всё про***, приказываю переделать систему, а меня уволить".
Что-то я сильно сомневаюсь, что там всё завязано на кластерный индекс. Скорее - кластерный индекс используется как первичный ключ.
Ну, пусть сделают первичный ключ - некластерным, а кластерный - по другим полям.
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840172
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggsteralexeyvgНапример, этот кластерный создан сторонней компанией-разработчиком, и придётся с этим жить. Ну, или полномочный менеджер должен издать приказ "я всё про***, приказываю переделать систему, а меня уволить".
Что-то я сильно сомневаюсь, что там всё завязано на кластерный индекс. Скорее - кластерный индекс используется как первичный ключ.
Ну, пусть сделают первичный ключ - некластерным, а кластерный - по другим полям.Понятно, что первичный ключ.
И как его поменять, если это приложение не ваше?
Попробуйте, поменяйте ПК и ключи в базе 1С :-)
...
Рейтинг: 0 / 0
Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
    #39840291
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg, ну, во-первых, неприличными словами - не выражаться! А то полстраны уже скриптами из 1С - дьявола вызывают.
А во-вторых - ну, первичный то ключ и кластерный индекс даже в 1С можно разделить. Только а) зачем и б) до первого обновления конфигурации...
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как избежать разбиение страниц при интенсивной транзакционной нагрузке на таблицу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]