Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как? / 22 сообщений из 22, страница 1 из 1
23.11.2011, 17:50
    #37541074
missing.fox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
Коллеги, собственно, вопрос в сабже.
Заранее спасибо.
...
Рейтинг: 0 / 0
23.11.2011, 17:54
    #37541086
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
missing.fox,
ALTER INDEX .. REBUILD / REORGANIZE
подробности в хелпе
...
Рейтинг: 0 / 0
23.11.2011, 18:00
    #37541097
missing.fox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
Коллега, я не проиндекс, я именно про таблицы.
Про индексы весь инет инфой завален )))
...
Рейтинг: 0 / 0
23.11.2011, 18:05
    #37541109
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
missing.fox,

1) создать и удалить кластерный индекс
2) вылить наружу в файл и залить обратно
...
Рейтинг: 0 / 0
23.11.2011, 18:05
    #37541110
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
missing.foxКоллега, я не проиндекс, я именно про таблицы.

Кучу нельзя дефрагментировать. Варианты:
Создайте кластерный индекс\грохните.

Перелейте в новую таблицу, старую грохните.
...
Рейтинг: 0 / 0
23.11.2011, 18:05
    #37541112
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
missing.fox, если вам почему-то не нравится через ALTER INDEX, для ALTER TABLE тоже есть опция REBUILD
...
Рейтинг: 0 / 0
23.11.2011, 18:07
    #37541113
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
pkarklinmissing.foxКоллега, я не проиндекс, я именно про таблицы.

Кучу нельзя дефрагментировать.

да ладно? alter table rebuild не сработает?
...
Рейтинг: 0 / 0
23.11.2011, 18:58
    #37541267
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
ShakillpkarklinКучу нельзя дефрагментировать.да ладно? alter table rebuild не сработает?похоже, не то сказал, слово "дефрагментация" в статье сбило с толку, в оригинале просто rebuild
...
Рейтинг: 0 / 0
24.11.2011, 11:58
    #37542048
missing.fox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
Огромное спасибо.
Ответ полностью исчерпывающий, это то, что надо!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.02.2013, 11:12
    #38139561
Scor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
Уважаемые коллеги!

Есть по этой теме такая ситуация:

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

Таблица без кластерного индекса, 25 ГБ данные 2 ГБ Индексы. Применяю к ней "alter table REBUILD", результат - размер данных 22 ГБ, индексы 1 ГБ. Если "переливаю" данные исходной таблицы в другую аналогичную пустую таблицу, то данные ужимаются до 15(!) ГБ.

Вопрос: это нормально? Операция "alter table REBUILD" не является эквивалентом пересоздания таблицы? Можно ли как-то не переливая данные из таблицы в таблицу сжать ее до 15 ГБ ?

Спасибо.
...
Рейтинг: 0 / 0
06.02.2013, 11:14
    #38139566
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
ScorТаблица без кластерного индекса, 25 ГБ данные 2 ГБ Индексы. Применяю к ней "alter table REBUILD", результат - размер данных 22 ГБ, индексы 1 ГБ. Если "переливаю" данные исходной таблицы в другую аналогичную пустую таблицу, то данные ужимаются до 15(!) ГБ.
Огласите инструмент/способ, которым вы измеряли эти значения ?
...
Рейтинг: 0 / 0
06.02.2013, 11:18
    #38139571
Scor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
Стандартный отчет "по размеру верхних 1000 таблиц", смотрю поля "Данные КБ" и "Индексы КБ"
...
Рейтинг: 0 / 0
06.02.2013, 11:49
    #38139630
Scor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
Может быть дело в том, что я запускал

ALTER TABLE <Имя таблицы> REBUILD

, а надо было

ALTER TABLE <Имя таблицы> REBUILD PARTITION = ALL
WITH (DATA_COMPRESSION = PAGE) ?

Последнее у меня, правда, не работает, пишет "Сжатие поддерживается только в выпуске SQL Server Enterprise Edition."
...
Рейтинг: 0 / 0
06.02.2013, 11:52
    #38139636
tpg
tpg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
Scor...ALTER TABLE <Имя таблицы> REBUILD PARTITION = ALL
WITH (DATA_COMPRESSION = PAGE) ?

Последнее у меня, правда, не работает, пишет "Сжатие поддерживается только в выпуске SQL Server Enterprise Edition."Стандартная редакция не поддерживает ни секционирования, ни сжатия данных.
...
Рейтинг: 0 / 0
06.02.2013, 12:04
    #38139658
Гость333
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
ScorТаблица без кластерного индекса, 25 ГБ данные 2 ГБ Индексы.
Вопрос: это нормально?
Таблица-куча размером 25 Гб, да ещё с индексами — это вряд ли нормально. Есть какие-то причины, по которым на таблице не создан кластерный индекс?
...
Рейтинг: 0 / 0
06.02.2013, 12:57
    #38139788
Scor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
База - хранилище таблиц для 1С, набор и вид индексов там предопределен платформой.
...
Рейтинг: 0 / 0
06.02.2013, 13:16
    #38139853
tpg
tpg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
ScorБаза - хранилище таблиц для 1С, набор и вид индексов там предопределен платформой.Это не значит, что адинэс не умеет просить сервер БД сделать ей кластерный индекс в таблице.
...
Рейтинг: 0 / 0
06.02.2013, 13:37
    #38139914
Scor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
В таблицах 1С 8.2 нельзя выбирать (если я не прав, то поправьте, как) наличие/отсутстивие кластерного индекса. Т.е. если вид таблицы - непериодический регистр сведений - то кластерного индекса платформой не предусматривается. Можно, конечно, руками создать.
...
Рейтинг: 0 / 0
07.02.2013, 07:18
    #38141035
Нектотам
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
Scor,

Если это регистр сведений, то
1. Если конфа нетиповая, то проще всего создать КИ сделав таблицу периодическим регистром сведений. Писать всё одной датой, конечно.
2. Если конфа типовая, значит с большой вероятностью неправильно используется.
3. Если проблема разовая, то можно тупо индекс по измерениям кластерным сделать. Понятно, что при реструктуризации всё слетит, но это меньшее зло.
...
Рейтинг: 0 / 0
07.02.2013, 09:13
    #38141088
Scor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
Попробовал создать кластерный индекс на таблице "руками" - 0 результата. Мне то надо, чтобы данные сжались, и они могут сжаться то. Перелив в другую таблицу то показал результат 25 ГБ -> 15 ГБ.

Теперь у меня другая мысль. Может не сжимается, так как одна из колонок с типом "image" ? За счет нее в основном планировалось место освободить.

Как думаете?
...
Рейтинг: 0 / 0
07.02.2013, 10:20
    #38141167
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
ScorПерелив в другую таблицу то показал результат 25 ГБ -> 15 ГБ.
Команду "перелив" покажите ?
А сравнение структур таблиц тоже?
...
Рейтинг: 0 / 0
07.02.2013, 10:37
    #38141199
Scor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как?
Вот скрипт создания исходной таблицы:

CREATE TABLE [dbo].[_InfoRg13638](
[_Fld13639_TYPE] [binary](1) NOT NULL,
[_Fld13639_RTRef] [binary](4) NOT NULL,
[_Fld13639_RRRef] [binary](16) NOT NULL,
[_Fld13640] [numeric](10, 0) NOT NULL,
[_Fld13641] [image] NOT NULL,
[_Fld13642RRef] [binary](16) NOT NULL,
[_Fld13643] [datetime] NOT NULL,
[_Fld13644] [binary](1) NOT NULL,
[_SimpleKey] [binary](16) NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

"Переливаю" с помощью Мастера импорта и экспорта SQL Server не с помощью запроса, а просто в пустую несуществующую таблицу (мастер сам создает при этом таблицу, идентичную исходной, только без индексов). Скрипт создания новой таблицы совпадает 1 к одному за исключением названия таблицы.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли в MSSQL 2008 дефраментировать таблицу и если да, то как? / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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