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

Откуда: Новосибирск
Сообщений: 1606
Здравствуйте !

Помогите разобраться. Реплицируется слиянием n-е количество табличек, 1 табличка - 1 подписчик, на издателе sp_spaceused для таблички дает такой результат (для остальных, реплицируемых, reserved тоже порядка 2 ГБ):

name rows reserved data index_size unused
ExchangeTransportLayer_Аба1 15 1969976 KB 1969568 KB 80 KB 328 KB


данных в табличке лежит на 100 КВ, почему такой большой размер ? ALTER INDEX ALL ... reorganize не помогает.

Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64)   Sep 21 2011 22:45:45   Copyright (c) 1988-2008 Microsoft Corporation  Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (VM) 
31 янв 12, 13:19    [12003090]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
Бектуров Роман
данных в табличке лежит на 100 КВ,

sp_spaceused @objname='ExchangeTransportLayer_Аба1', @updateusage = 'True'
31 янв 12, 13:21    [12003133]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
пробовал, картина не меняется
31 янв 12, 13:23    [12003158]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
Бектуров Роман
пробовал, картина не меняется

Тогда расскажите, как вы вычисляли "данных в табличке лежит на 100 КВ" ?
31 янв 12, 13:27    [12003208]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
так
select
  sum
  (
     datalength(Id)
    +datalength(SenderContractorCode)
    +datalength(RecipientContractorCode)
    +datalength(Date)
    +datalength(Data)
    +datalength(RowId)
  )
from
  ExchangeTransportLayer_Аба1
31 янв 12, 13:29    [12003259]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
А фрагментацию этот метод как измеряет ?


DBCC SHOWCONTIG ("ExchangeTransportLayer_Аба1");
31 янв 12, 13:35    [12003377]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
DBCC SHOWCONTIG просматривает таблицу "ExchangeTransportLayer_Аба1"..
Таблица: "ExchangeTransportLayer_Аба1" (445400806); идентификатор индекса: 1, идентификатор базы данных: 17
Выполнен просмотр TABLE уровня.
- Просмотрено страниц................: 68
- Просмотрено экстентов................: 13
- Переключений экстентов................: 13
- Среднее число страниц на экстент............: 5.2
- Плотность просмотра [лучший счетчик:фактический счетчик]....: 64.29% [9:14]
- Логическое разбиение просмотра.........: 10.29%
- Разбиение просмотра по экстентам.........: 53.85%
- В среднем байт на страницу............: 831.1
- Средняя плотность страницы (полная)...........: 89.73%
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
31 янв 12, 13:36    [12003406]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
А Data - это BLOB ?
31 янв 12, 13:40    [12003480]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
nvarchar(max)
31 янв 12, 13:42    [12003499]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Бектуров Роман,

пробуйте DBCC CLEANTABLE
31 янв 12, 13:44    [12003559]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
Бектуров Роман
nvarchar(max)

Которое наверное часто и много правили ?
Что с его фрагментацией ?
31 янв 12, 13:45    [12003568]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
Glory
Бектуров Роман
nvarchar(max)

Которое наверное часто и много правили ?
Что с его фрагментацией ?


данные только вставляются и удаляются, порядка 10 000 строк в день.

DECLARE @db_id SMALLINT;
DECLARE @object_id INT;
SET @db_id = DB_ID()
SET @object_id = OBJECT_ID(N'dbo.ExchangeTransportLayer_Аба1');
SELECT alloc_unit_type_desc, 
       page_count, 
       avg_page_space_used_in_percent, 
       record_count
FROM sys.dm_db_index_physical_stats(@db_id, @object_id, NULL, NULL , 'Detailed');


alloc_unit_type_desc page_count avg_page_space_used_in_percent record_count
... ... ... ...
LOB_DATA 247363 0.283444526809983 10


видимо вот и ответ :-)
31 янв 12, 13:56    [12003750]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
WarAnt
Бектуров Роман,

пробуйте DBCC CLEANTABLE


не помогло
31 янв 12, 13:58    [12003770]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
как-нибуд можно страницы освободить или только пересоздание ?
31 янв 12, 14:11    [12003930]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
up
1 фев 12, 16:05    [12012786]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
1d0
Member

Откуда: инфа100%
Сообщений: 2521
в таблице было много данных и их удалили?


теперь за таблицей осталось зарезервированное место, освободить его можно только шринком бд, что нежелательно
1 фев 12, 17:00    [12013514]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
1d0
в таблице было много данных и их удалили?


не совсем так, туда данные постоянно вставляются и удаляются.

На счет шринка чет сомнительно, диалог сжатия говорит что файл данных весит 83 гб и минимальный размер до которого можно сжать 83 гб :-) Из 83 гб 65 гб - это место, выделенное под реплицируемые таблички. Причем на подписчике табличка занимает копейки, там 2008 R2 express
1 фев 12, 17:16    [12013680]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
1d0
Member

Откуда: инфа100%
Сообщений: 2521
Бектуров Роман
1d0
в таблице было много данных и их удалили?


не совсем так, туда данные постоянно вставляются и удаляются.

На счет шринка чет сомнительно, диалог сжатия говорит что файл данных весит 83 гб и минимальный размер до которого можно сжать 83 гб :-) Из 83 гб 65 гб - это место, выделенное под реплицируемые таблички. Причем на подписчике табличка занимает копейки, там 2008 R2 express


шринк файлов бд и лога сколько показывает available free space ?
1 фев 12, 17:58    [12014237]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
для файла данных - выделено 83гб, свободно 4мб (0%), для лога - выделено 35 мб, свободно 15мб (45 %) (модель восстановления simple и лог шринкуется раз в час)
1 фев 12, 18:46    [12014700]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
мож ещё какие идеи будут ?
6 фев 12, 16:26    [12041968]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
1.
select * into zip_table from mytable
truncate table mytable
insert mytable select * from zip_table

2. alter table mytable add column new_blob nvarchar(max)
go
update mytable set new_blob = data
go
alter table mytable drop column data
go
dbcc cleantable
go
exec sp_raname ...
6 фев 12, 16:36    [12042094]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
Glory,

так табличка ж реплицируется.
по поводу truncate, BOL говорит что инструкцию применять нельзя если таблица опубликована с использованием репликации слиянием, по второму способу, я так понимаю публикация тоже испортиться или не факт ?
6 фев 12, 18:08    [12042931]     Ответить | Цитировать Сообщить модератору
 Re: размер реплицируемой таблицы  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
Проблема решилась совершенно случайно и неожиданно: ночью админ установил сервиспак на операционную систему и перегрузился, утром смотрю размер базы, высвободилось 85% процентов места, все репликационные таблички вместо 2 гб уменьшились то порядка 1 мб.

Всем большое спасибо за помошь !
7 фев 12, 10:01    [12044966]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить