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

Откуда:
Сообщений: 41
Добрый день.

Не нашел команду

DBCC SHRINKTABLE


Есть ли такая?
4 дек 17, 16:32    [21004932]     Ответить | Цитировать Сообщить модератору
 Re: можно ли сжать только 1 таблицу а не всю БД или FG или файл?  [new]
iii2
Member

Откуда:
Сообщений: 202
p-сервер, А зачем?
Чего вы хотите добиться?
4 дек 17, 16:38    [21004948]     Ответить | Цитировать Сообщить модератору
 Re: можно ли сжать только 1 таблицу а не всю БД или FG или файл?  [new]
p-сервер
Member [заблокирован]

Откуда:
Сообщений: 41
iii2
p-сервер, А зачем?
Чего вы хотите добиться?


высвободить место.

в одной из таблиц в sysindexes огромная разница между reserved и dpages.
4 дек 17, 16:40    [21004957]     Ответить | Цитировать Сообщить модератору
 Re: можно ли сжать только 1 таблицу а не всю БД или FG или файл?  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Версия сервера? Потому как в некоторых старых версиях были баги из-за которых не чистились LOB страницы.
4 дек 17, 16:52    [21005002]     Ответить | Цитировать Сообщить модератору
 Re: можно ли сжать только 1 таблицу а не всю БД или FG или файл?  [new]
Добрый Э - Эх
Guest
p-сервер,

Alter table rebuild ?
4 дек 17, 16:54    [21005007]     Ответить | Цитировать Сообщить модератору
 Re: можно ли сжать только 1 таблицу а не всю БД или FG или файл?  [new]
p-сервер
Member [заблокирован]

Откуда:
Сообщений: 41
AlanDenton
Версия сервера? Потому как в некоторых старых версиях были баги из-за которых не чистились LOB страницы.


2008r2 sp2
4 дек 17, 17:00    [21005022]     Ответить | Цитировать Сообщить модератору
 Re: можно ли сжать только 1 таблицу а не всю БД или FG или файл?  [new]
p-сервер
Member [заблокирован]

Откуда:
Сообщений: 41
Добрый Э - Эх
p-сервер,

Alter table rebuild ?


Да, спасибо!

По идее это то что надо и должно сработать.

Однако:

Не удалось выделить новую страницу для базы данных "PRD" вследствие нехватки места на диске в файловой группе "PRIMARY".
4 дек 17, 17:04    [21005034]     Ответить | Цитировать Сообщить модератору
 Re: можно ли сжать только 1 таблицу а не всю БД или FG или файл?  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
p-сервер, не смогу сейчас на 2008R2 SP2 проверить, но вот репро проблемы с которой давно столкнулся (ее то фиксили то ломали)

SET NOCOUNT ON

USE tempdb
GO

IF OBJECT_ID('dbo.lob', 'U') IS NOT NULL
    DROP TABLE dbo.lob
GO

CREATE TABLE dbo.lob (id INT IDENTITY PRIMARY KEY, x VARCHAR(MAX)) 
GO

INSERT dbo.lob SELECT NULL
GO

------------------------------------------------------

BEGIN TRAN
    INSERT dbo.lob
    SELECT REPLICATE(CAST('<x>1</x>' AS VARCHAR(MAX)), 30000)
ROLLBACK TRAN
GO 100

------------------------------------------------------

SELECT p.[rows], a.type_desc, a.total_pages, a.used_pages, a.data_pages
FROM sys.partitions p
LEFT JOIN sys.allocation_units a ON p.[partition_id] = a.container_id
WHERE p.[object_id] = OBJECT_ID('dbo.lob')

SELECT *
FROM sys.dm_db_index_physical_stats(DB_ID(), OBJECT_ID('dbo.lob'), NULL, NULL, N'DETAILED')

------------------------------------------------------

DELETE FROM dbo.lob
TRUNCATE TABLE dbo.lob
ALTER TABLE dbo.lob REBUILD

------------------------------------------------------

DBCC CLEANTABLE('tempdb', 'dbo.lob') -- 2005/2008 RTM

-- Fixed: 2005 (SP3) / 2008 (SP2) / 2008R2 (SP1)

смысл в том, что при ROLLBACK данные на LOB не пропадали и DELETE/TRUNCATE/REBUILD не помогал. А вот CLEANTABLE выручила и потом в одном из SP все таки стало стабильно.
4 дек 17, 17:05    [21005039]     Ответить | Цитировать Сообщить модератору
 Re: можно ли сжать только 1 таблицу а не всю БД или FG или файл?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36698
p-сервер
По идее это то что надо и должно сработать.

Однако:

Не удалось выделить новую страницу для базы данных "PRD" вследствие нехватки места на диске в файловой группе "PRIMARY".
По чьей идее должно работать? Требования к месту для выполнения команды Alter table rebuild описаны в хелпе.
4 дек 17, 17:05    [21005040]     Ответить | Цитировать Сообщить модератору
 Re: можно ли сжать только 1 таблицу а не всю БД или FG или файл?  [new]
p-сервер
Member [заблокирован]

Откуда:
Сообщений: 41
Гавриленко Сергей Алексеевич
p-сервер
По идее это то что надо и должно сработать.

Однако:

Не удалось выделить новую страницу для базы данных "PRD" вследствие нехватки места на диске в файловой группе "PRIMARY".
По чьей идее должно работать? Требования к месту для выполнения команды Alter table rebuild описаны в хелпе.


Удалил пару табличек и все сработало.

Спасибо :)
4 дек 17, 17:07    [21005045]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить