|
Сжатие пользователских баз данных на уровне таблиц
|
|||
---|---|---|---|
#18+
komrad ownsmir Ругается на Неверный синтаксис если ругается, значит поправили не везде еще раз: каждая кавычка должна быть экранирована отправил в астрал читателя ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2021, 13:52 |
|
Сжатие пользователских баз данных на уровне таблиц
|
|||
---|---|---|---|
#18+
komrad ownsmir Ругается на Неверный синтаксис если ругается, значит поправили не везде еще раз: каждая кавычка должна быть экранирована Извините, наверное подбешиваю, но не получается: 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);' Ругается вообще на все теперь Сообщение 137, уровень 15, состояние 2, строка 16 Необходимо объявить скалярную переменную "@Table_catalog". Сообщение 137, уровень 15, состояние 2, строка 20 Необходимо объявить скалярную переменную "@Table_catalog". Сообщение 137, уровень 15, состояние 2, строка 21 Необходимо объявить скалярную переменную "@Table_catalog". Сообщение 137, уровень 15, состояние 2, строка 24 Необходимо объявить скалярную переменную "@Table_catalog". Сообщение 137, уровень 15, состояние 2, строка 38 Необходимо объявить скалярную переменную "@Table_catalog". Сообщение 137, уровень 15, состояние 2, строка 42 Необходимо объявить скалярную переменную "@Table_catalog". Сообщение 137, уровень 15, состояние 2, строка 44 Необходимо объявить скалярную переменную "@Table_catalog". Сообщение 137, уровень 15, состояние 2, строка 47 и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2021, 13:59 |
|
Сжатие пользователских баз данных на уровне таблиц
|
|||
---|---|---|---|
#18+
ownsmir, да, с дублированием кавычек иногда приходится повозиться так должно сработать Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2021, 14:03 |
|
Сжатие пользователских баз данных на уровне таблиц
|
|||
---|---|---|---|
#18+
komrad ownsmir, да, с дублированием кавычек иногда приходится повозиться так должно сработать Код: 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.
Вроде начал работать! Спасибо Вам огромное за помощЬ!! По итогу работы ночью отпишусь.! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2021, 14:10 |
|
Сжатие пользователских баз данных на уровне таблиц
|
|||
---|---|---|---|
#18+
ownsmir Сообщение 137, уровень 15, состояние 2, строка 16 Необходимо объявить скалярную переменную "@Table_catalog". это потому, что переменная была потеряна в процессе адаптации скрипта - в оригинальном скрипте она идет первым declare ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2021, 14:41 |
|
Сжатие пользователских баз данных на уровне таблиц
|
|||
---|---|---|---|
#18+
Артель "напрасный труд" имени Сизифа. А диски у вас не твердотельные (SSD) случаем? Какая у вас версия/редакция? Ибо если вам нелицензируемое место на диске дороже лицензируемого процессора я бы смотрел в сторону секционирования. Для этого выполнил бы отчетик из студии: список 1000 самых больших таблиц, выбрал бы десяток таблиц (типа журналов с датой операции) и разбил бы их по дате на "старые" и "текущие". А вот старые бы и сжимал, причем сразу на проде. Далее, если записи в старые партиции не происходит, то вообще вынес бы их на отдельные файловые группы только для чтения. Бонус - их можно пропускать при бакапе и восстановлении. Какой смысл сжимать все таблицы - визгу много толку мало? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2021, 20:10 |
|
Сжатие пользователских баз данных на уровне таблиц
|
|||
---|---|---|---|
#18+
ownsmir komrad ownsmir, да, с дублированием кавычек иногда приходится повозиться так должно сработать Код: 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.
Вроде начал работать! Спасибо Вам огромное за помощЬ!! По итогу работы ночью отпишусь.! не отписывается, видно прищучили ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2021, 13:02 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1684211]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
118ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 258ms |
total: | 483ms |
0 / 0 |