Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сжатие пользователских баз данных на уровне таблиц / 25 сообщений из 32, страница 1 из 2
08.10.2021, 15:29
    #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
08.10.2021, 15:35
    #40103093
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие пользователских баз данных на уровне таблиц
ownsmir,

(DATA_COMPRESSION = PAGE)

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

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

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

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

(DATA_COMPRESSION = PAGE)

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

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

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

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


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


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

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

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


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

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

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


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


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

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

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


Там не со всем нужных, там всех кроме системных, базы ежедневно меняются (удаляются, добавляются) и нужно их отлавливать и обрабатывать
...
Рейтинг: 0 / 0
08.10.2021, 16:39
    #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
08.10.2021, 16:43
    #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
08.10.2021, 16:48
    #40103130
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие пользователских баз данных на уровне таблиц
ownsmir

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


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

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


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


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

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

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

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

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


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


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

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


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

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

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


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

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


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

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


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


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

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


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

а что там с логами? может будеть достаточно переводить в симпл и обрезать логи?
...
Рейтинг: 0 / 0
11.10.2021, 11:50
    #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
11.10.2021, 11:54
    #40103534
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие пользователских баз данных на уровне таблиц
ownsmir
komrad

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


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


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


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

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


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


не "учитили езвга", но долбо*бами тоже быть не стоит, ведь профессия предполагает, что человек учился в ВУЗе, не так ли?
А если он неграмотен, то какой из него специолизд? парадокс
...
Рейтинг: 0 / 0
11.10.2021, 13:13
    #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
11.10.2021, 13:32
    #40103568
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие пользователских баз данных на уровне таблиц
ownsmir

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

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

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


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