powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сжатие пользователских баз данных на уровне таблиц
25 сообщений из 32, страница 1 из 2
Сжатие пользователских баз данных на уровне таблиц
    #40103087
ownsmir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня всем.
Есть задача добавить в план обслуживания такой T-SQL скрипт, который будет каждый запуск плана обслуживания шуршать по не системным базам данных и делать сжатие на уровне таблиц (там где его нет (было уже выполнено)). MS SQL 2019
Есть скрипт, но он работает только на запросе к базе данных и отрабатывает как надо. Вот его бы как нибудь допилить на массовую работу (или поочередную).
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
DECLARE @Table_catalog NVARCHAR(128) 
DECLARE @Table_schema NVARCHAR(128) 
DECLARE @Table_name NVARCHAR(128) 
DECLARE @Index_Name NVARCHAR(128) 

DECLARE @cmd VARCHAR(4000) 

-- включение сжатия для таблиц
DECLARE TableNameCursor CURSOR
FOR
	SELECT Table_catalog, Table_schema, Table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'
	ORDER BY Table_catalog, Table_schema, Table_name

OPEN TableNameCursor

FETCH NEXT FROM TableNameCursor INTO @Table_catalog, @Table_schema, @Table_name
WHILE @@fetch_status = 0
	BEGIN 
				
		PRINT @Table_catalog + '.' + @Table_schema +  '.' + @Table_name
		SET @cmd = 'ALTER TABLE [' + @Table_catalog + '].[' + @Table_schema + '].[' + @Table_name + '] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)'
		EXEC (@cmd) 

		FETCH NEXT FROM TableNameCursor INTO @Table_catalog, @Table_schema, @Table_name 
	END 
CLOSE TableNameCursor 
DEALLOCATE TableNameCursor 

-- включение сжатия для индексов
DECLARE IndexCursor CURSOR
FOR
    SELECT  DB_NAME(), schemas.name, tables.name, indexes.name
    FROM sys.schemas as schemas inner join sys.tables as tables inner join sys.indexes as indexes on tables.object_id = indexes.object_id on schemas.schema_id = tables.schema_id
	ORDER BY schemas.name, tables.name, indexes.name;

OPEN IndexCursor

FETCH NEXT FROM IndexCursor INTO @Table_catalog, @Table_schema, @Table_name, @Index_Name
WHILE @@fetch_status = 0
	BEGIN 
				
		PRINT @Table_catalog + '.' + @Table_schema + '.' + @Table_name +  ': ' + @Index_Name

		SET @cmd = 'ALTER INDEX [' + @Index_Name + '] ON [' + @Table_catalog + '].[' + @Table_schema + '].[' + @Table_name + '] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)'
		EXEC (@cmd) 

		FETCH NEXT FROM IndexCursor INTO @Table_catalog, @Table_schema, @Table_name, @Index_Name
	END 
CLOSE IndexCursor 
DEALLOCATE IndexCursor 

-- делаем шринк базы - возвращаем свободное место на диск
SELECT @cmd=(
SELECT 'DBCC SHRINKDATABASE('''+ DB_NAME() + ''')'
)
EXEC (@cmd)
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103093
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ownsmir,

(DATA_COMPRESSION = PAGE)

Не делайте этого.

Лучше посмотрите в сторону колумнстора. Он него сжатие куда более эффективное.

А вместо ваших курсоров

Код: sql
1.
EXEC sp_MSforeachtable 'SELECT ''?'' TableName, Count(1) NumRecords FROM ?'
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103106
ownsmir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voronin
ownsmir,

(DATA_COMPRESSION = PAGE)

Не делайте этого.

Лучше посмотрите в сторону колумнстора. Он него сжатие куда более эффективное.

А вместо ваших курсоров

Код: sql
1.
EXEC sp_MSforeachtable 'SELECT ''?'' TableName, Count(1) NumRecords FROM ?'


Если есть возможность, можете накидать как с колумнстором будет...?
А то так себе разбираюсь в T-SQL
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103108
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103109
ownsmir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость


Я конечно извиняюсь, но времени изучать новый язык для написания рабочего скрипта для рабочей среды баз данных у меня нет, по этому и написал сюда в надежде на помощь с готовым решением, которое смогу использовать на проде как говорится.

Вместо курсоров тоже не особо понял что Ваш код делает
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103111
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ownsmir,

у колумнстора свои особенности и побочные эффекты
слепо на него переходить не стоит


ownsmirЕсть скрипт, но он работает только на запросе к базе данных и отрабатывает как надо. Вот его бы как нибудь допилить на массовую работу (или поочередную).

напишите простой цикл по перебору нужных вам баз и для каждой выполните данный скрипт, сделав его динамическим
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103116
ownsmir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
ownsmir,

у колумнстора свои особенности и побочные эффекты
слепо на него переходить не стоит


ownsmirЕсть скрипт, но он работает только на запросе к базе данных и отрабатывает как надо. Вот его бы как нибудь допилить на массовую работу (или поочередную).


напишите простой цикл по перебору нужных вам баз и для каждой выполните данный скрипт, сделав его динамическим

все мои попытки его написать (выдрав из скриптов которые работают по всем базам) не работают...
Я по этому написал сюда, потому что не знаю как его написать, а времени разбираться нет, стоит задача, Админа баз данных в штате нет к большому моему сожалению...
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103118
ownsmir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
ownsmir,

напишите простой цикл по перебору нужных вам баз и для каждой выполните данный скрипт, сделав его динамическим


Там не со всем нужных, там всех кроме системных, базы ежедневно меняются (удаляются, добавляются) и нужно их отлавливать и обрабатывать
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103126
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ownsmir
komrad
ownsmir,

напишите простой цикл по перебору нужных вам баз и для каждой выполните данный скрипт, сделав его динамическим


Там не со всем нужных, там всех кроме системных, базы ежедневно меняются (удаляются, добавляются) и нужно их отлавливать и обрабатывать


ну, например, так :

Код: sql
1.
exec sp_msforeachdb 'use [?]; if db_id()<5 or databasepropertyex(db_name(),''Updateability'')=''READ_ONLY'' return; print db_name();'



после/вместо print db_name() вставляете нужный вам скрипт
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103128
ownsmir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
ownsmir
пропущено...


Там не со всем нужных, там всех кроме системных, базы ежедневно меняются (удаляются, добавляются) и нужно их отлавливать и обрабатывать


ну, например, так :

Код: sql
1.
exec sp_msforeachdb 'use [?]; if db_id()<5 or databasepropertyex(db_name(),''Updateability'')=''READ_ONLY'' return; print db_name();'



после/вместо print db_name() вставляете нужный вам скрипт



Спасибо огромное за уже зацепочку.
Выглядит совсем не как в интернете все что находил.
Работает, но почему-то показывает не все базы данных
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103130
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ownsmir

Работает, но почему-то показывает не все базы данных


пропущены следующие базы:
1) недоступные
2) в однопользовательском режиме
3) системные
4) в режиме только для чтения
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103136
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ownsmir
komrad
ownsmir,

напишите простой цикл по перебору нужных вам баз и для каждой выполните данный скрипт, сделав его динамическим


Там не со всем нужных, там всех кроме системных, базы ежедневно меняются (удаляются, добавляются) и нужно их отлавливать и обрабатывать


не хотел, но не выдержал, запятые - х.с.н., но б***ь же ж, вы хоть сами понимаете, что пишете?

по этому написал сюда"-> поэтому
"не со всем нужных" - > не совсем нужных
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103139
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ownsmir,

сжатие имеет неприятные последствия, например, при изменении таблицы, колонку добавить или еще что, будет автоматически перезалита вся таблица. Сжимать следует лишь то, что очень редко изменяется.
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103161
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
сжатие имеет неприятные последствия
В данном случае не сжимать хуже - уволят за невыполнение распоряжения начальства.
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103184
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте танцевать от печки - какую цель преследуете?

Пока что я вижу - спонсор скриптов производитель систем хранения.
Убей диски, загрузи их ненужной работой, заполни диск с логами баз и повтори это на следующий день.

Вместо этого рекомендую делать DBCC CHECKDB - шуршать будет также, но с пользой, плюс не будет расти лог.
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103476
ownsmir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин
ownsmir
пропущено...


Там не со всем нужных, там всех кроме системных, базы ежедневно меняются (удаляются, добавляются) и нужно их отлавливать и обрабатывать


не хотел, но не выдержал, запятые - х.с.н., но б***ь же ж, вы хоть сами понимаете, что пишете?

по этому написал сюда"-> поэтому
"не со всем нужных" - > не совсем нужных


Учитили руского езыка падьехоли...
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103477
ownsmir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257
Давайте танцевать от печки - какую цель преследуете?

Пока что я вижу - спонсор скриптов производитель систем хранения.
Убей диски, загрузи их ненужной работой, заполни диск с логами баз и повтори это на следующий день.

Вместо этого рекомендую делать DBCC CHECKDB - шуршать будет также, но с пользой, плюс не будет расти лог.


Дело происходит в тестовой среде для разрабов. Базы по 300гб, памяти не хватает, по этому надо их ужать на сколько это возможно. Базы ежедневно восстанавливаются с рабочих, удаляется. В ручную сжимаю скриптом из 290гб становится 30гб. Но каждый день этим заниматься по 5-6 часов надоело, хочется чтобы этим занимался скрипт, по всем базам которые не сжаты. Т.е. базу восстановили, она 300гб, ночью план обслуживания отработал и на утро она 30 гигов. Вся цель
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103493
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ownsmir

Дело происходит в тестовой среде для разрабов. Базы по 300гб, памяти не хватает, по этому надо их ужать на сколько это возможно. ...Т.е. базу восстановили, она 300гб, ночью план обслуживания отработал и на утро она 30 гигов. Вся цель


то есть, на восстановление (всех?) места хватает
и всё сжатие только для того, чтобы количество свободного места на диске радовало глаз в течение дня?
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103508
ownsmir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
ownsmir

Дело происходит в тестовой среде для разрабов. Базы по 300гб, памяти не хватает, по этому надо их ужать на сколько это возможно. ...Т.е. базу восстановили, она 300гб, ночью план обслуживания отработал и на утро она 30 гигов. Вся цель


то есть, на восстановление (всех?) места хватает
и всё сжатие только для того, чтобы количество свободного места на диске радовало глаз в течение дня?


Не совсем. Если бы места было куча, я бы сейчас не заморачивался, а так приходится отслеживать появление новых баз. И запускать скрипт на сжатие в ручную, иначе приходит ошибочка что места нет.
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103517
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ownsmir

Не совсем. Если бы места было куча, я бы сейчас не заморачивался, а так приходится отслеживать появление новых баз. И запускать скрипт на сжатие в ручную, иначе приходит ошибочка что места нет.


это, конечно, не лучший вариант, но попробуйте включить компрессию на диске, на котором лежат базы - если это даст такой же эффект, что и компрессия баз, то это будет заменой.

а что там с логами? может будеть достаточно переводить в симпл и обрезать логи?
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103530
ownsmir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
ownsmir
пропущено...


Там не со всем нужных, там всех кроме системных, базы ежедневно меняются (удаляются, добавляются) и нужно их отлавливать и обрабатывать


ну, например, так :

Код: sql
1.
exec sp_msforeachdb 'use [?]; if db_id()<5 or databasepropertyex(db_name(),''Updateability'')=''READ_ONLY'' return; print db_name();'



после/вместо print db_name() вставляете нужный вам скрипт


Не хочет работать(((

Что получилось:
exec sp_msforeachdb 'use [?]; if db_id()<5 or databasepropertyex(db_name(),''Updateability'')=''READ_ONLY'' return;
DECLARE @Table_catalog NVARCHAR(128)
DECLARE @Table_schema NVARCHAR(128)
DECLARE @Table_name NVARCHAR(128)
DECLARE @Index_Name NVARCHAR(128)

DECLARE @cmd VARCHAR(4000)

-- включение сжатия для таблиц
DECLARE TableNameCursor CURSOR
FOR
SELECT Table_catalog, Table_schema, Table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'
ORDER BY Table_catalog, Table_schema, Table_name

OPEN TableNameCursor

FETCH NEXT FROM TableNameCursor INTO @Table_catalog, @Table_schema, @Table_name
WHILE @@fetch_status = 0
BEGIN

PRINT @Table_catalog + '.' + @Table_schema + '.' + @Table_name
SET @cmd = 'ALTER TABLE [' + @Table_catalog + '].[' + @Table_schema + '].[' + @Table_name + '] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)'
EXEC (@cmd)

FETCH NEXT FROM TableNameCursor INTO @Table_catalog, @Table_schema, @Table_name
END
CLOSE TableNameCursor
DEALLOCATE TableNameCursor

-- включение сжатия для индексов
DECLARE IndexCursor CURSOR
FOR
SELECT DB_NAME(), schemas.name, tables.name, indexes.name
FROM sys.schemas as schemas inner join sys.tables as tables inner join sys.indexes as indexes on tables.object_id = indexes.object_id on schemas.schema_id = tables.schema_id
ORDER BY schemas.name, tables.name, indexes.name;

OPEN IndexCursor

FETCH NEXT FROM IndexCursor INTO @Table_catalog, @Table_schema, @Table_name, @Index_Name
WHILE @@fetch_status = 0
BEGIN

PRINT @Table_catalog + '.' + @Table_schema + '.' + @Table_name + ': ' + @Index_Name

SET @cmd = 'ALTER INDEX [' + @Index_Name + '] ON [' + @Table_catalog + '].[' + @Table_schema + '].[' + @Table_name + '] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)'
EXEC (@cmd)

FETCH NEXT FROM IndexCursor INTO @Table_catalog, @Table_schema, @Table_name, @Index_Name
END
CLOSE IndexCursor
DEALLOCATE IndexCursor

-- делаем шринк базы - возвращаем свободное место на диск
SELECT @cmd=(
SELECT 'DBCC SHRINKDATABASE('''+ DB_NAME() + ''')'
)
EXEC (@cmd);'


что выдает:
Сообщение 102, уровень 15, состояние 1, строка 12
Неправильный синтаксис около конструкции "BASE".
Сообщение 102, уровень 15, состояние 1, строка 22
Неправильный синтаксис около конструкции "
EXEC (@cmd)

FETCH NEXT FROM TableNameCursor INTO @Table_catalog, @Table_schema, @Table_name
END
CLOSE TableNameCur".
Сообщение 102, уровень 15, состояние 1, строка 45
Неправильный синтаксис около конструкции "
EXEC (@cmd)

FETCH NEXT FROM IndexCursor INTO @Table_catalog, @Table_schema, @Table_name, @Index_Name
END
CLOSE Inde".
Сообщение 102, уровень 15, состояние 1, строка 55
Неправильный синтаксис около конструкции "
)
EXEC (@cmd);".
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103534
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ownsmir
komrad

после/вместо print db_name() вставляете нужный вам скрипт


Не хочет работать(((


"TABLE_TYPE = 'BASE TABLE'"
все кавычки исходного скрипта надо задвоить/экранировать
т.е.
"TABLE_TYPE = ''BASE TABLE''"
и так далее
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103536
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ownsmir
Ролг Хупин
пропущено...


не хотел, но не выдержал, запятые - х.с.н., но б***ь же ж, вы хоть сами понимаете, что пишете?

по этому написал сюда"-> поэтому
"не со всем нужных" - > не совсем нужных


Учитили руского езыка падьехоли...


не "учитили езвга", но долбо*бами тоже быть не стоит, ведь профессия предполагает, что человек учился в ВУЗе, не так ли?
А если он неграмотен, то какой из него специолизд? парадокс
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103557
ownsmir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
ownsmir
пропущено...


Не хочет работать(((


"TABLE_TYPE = 'BASE TABLE'"
все кавычки исходного скрипта надо задвоить/экранировать
т.е.
"TABLE_TYPE = ''BASE TABLE''"
и так далее


Спасибо за ответ.
Поправил:
exec sp_msforeachdb 'use [?]; if db_id()<5 or databasepropertyex(db_name(),''Updateability'')="READ_ONLY"" return;
DECLARE @Table_schema NVARCHAR(128)
DECLARE @Table_name NVARCHAR(128)
DECLARE @Index_Name NVARCHAR(128)

DECLARE @cmd VARCHAR(4000)

-- включение сжатия для таблиц
DECLARE TableNameCursor CURSOR
FOR
SELECT Table_catalog, Table_schema, Table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = "BASE TABLE"
ORDER BY Table_catalog, Table_schema, Table_name

OPEN TableNameCursor

FETCH NEXT FROM TableNameCursor INTO @Table_catalog, @Table_schema, @Table_name
WHILE @@fetch_status = 0
BEGIN

PRINT @Table_catalog + '.' + @Table_schema + '.' + @Table_name
SET @cmd = "ALTER TABLE [' + @Table_catalog + '].[' + @Table_schema + '].[' + @Table_name + '] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)"
EXEC (@cmd)

FETCH NEXT FROM TableNameCursor INTO @Table_catalog, @Table_schema, @Table_name
END
CLOSE TableNameCursor
DEALLOCATE TableNameCursor

-- включение сжатия для индексов
DECLARE IndexCursor CURSOR
FOR
SELECT DB_NAME(), schemas.name, tables.name, indexes.name
FROM sys.schemas as schemas inner join sys.tables as tables inner join sys.indexes as indexes on tables.object_id = indexes.object_id on schemas.schema_id = tables.schema_id
ORDER BY schemas.name, tables.name, indexes.name;

OPEN IndexCursor

FETCH NEXT FROM IndexCursor INTO @Table_catalog, @Table_schema, @Table_name, @Index_Name
WHILE @@fetch_status = 0
BEGIN

PRINT @Table_catalog + '.' + @Table_schema + '.' + @Table_name + ': ' + @Index_Name

SET @cmd = "ALTER INDEX [' + @Index_Name + '] ON [' + @Table_catalog + '].[' + @Table_schema + '].[' + @Table_name + '] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)"
EXEC (@cmd)

FETCH NEXT FROM IndexCursor INTO @Table_catalog, @Table_schema, @Table_name, @Index_Name
END
CLOSE IndexCursor
DEALLOCATE IndexCursor

-- делаем шринк базы - возвращаем свободное место на диск
SELECT @cmd=(
SELECT "DBCC SHRINKDATABASE('''+ DB_NAME() + ''')"
)
EXEC (@cmd);'


Ругается на Неверный синтаксис
BEGIN

PRINT @Table_catalog + '.' + @Table_schema + '.' + @Table_name
SET @cmd = "ALTER TABLE [' + @Table_catalog + '].[' + @Table_schema + '].[' + @Table_name + '] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)"
EXEC (@cmd)
...
Рейтинг: 0 / 0
Сжатие пользователских баз данных на уровне таблиц
    #40103568
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ownsmir

Ругается на Неверный синтаксис

если ругается, значит поправили не везде

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


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