powered by simpleCommunicator - 21.11.28     © 2024 Programmizd 02
Map
Форумы / Вопросы по IT / бакап ресторе MS SQL, Поиск: Искать сообщения, созданные автором: SandalTree  
5 сообщений из 5, страница 1 из 1
Вопросы по IT / бакап ресторе MS SQL
    #2573045
SandalTree
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
Что такое FB?

Шринк - это зло.

Если-бы ТС немного больше рассказал, то было-бы более понятнее чем правильнее лечить.

Вопросы
1. В каком transactional mode ваша база? Full or simple?
2. О каком размере мы вообще говорим?
3. Сколько в базе таблиц, которые из них выросли и сколько в них свободного места?

Обычно такая-сякая херня случается в следующих случаях:
1. База в Фулл и немеряно растёт лог.
2. Обновляемая таблица зачем-то подвергается Index rebuild, что увеличивает базу на размер таблицы.
3. Обновляемая таблица имеет филл-фактор 100%, что при даже небольших вставках может привести к увеличению размера на 70% и более.

Какая херня у вас?
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
Вопросы по IT / бакап ресторе MS SQL
    #2578145
SandalTree
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
vad72  13.11.2020, 11:08
SandalTree  11.11.2020, 06:15
Что такое FB?

Шринк - это зло.

Если-бы ТС немного больше рассказал, то было-бы более понятнее чем правильнее лечить.

Вопросы
1. В каком transactional mode ваша база? Full or simple?
2. О каком размере мы вообще говорим?
3. Сколько в базе таблиц, которые из них выросли и сколько в них свободного места?

Обычно такая-сякая херня случается в следующих случаях:
1. База в Фулл и немеряно растёт лог.
2. Обновляемая таблица зачем-то подвергается Index rebuild, что увеличивает базу на размер таблицы.
3. Обновляемая таблица имеет филл-фактор 100%, что при даже небольших вставках может привести к увеличению размера на 70% и более.

Какая херня у вас?
1. не знаю.
2. 258879,06 МБ (это после шринк)
3. не знаю.

На FireBird, бакап-ресторе уменьшал размер БД за счет чистки мусора. Подумал, может в ms sql что-то подобное есть.
БД использую для себя, храню там данные, так как в Excel не помещаются.
1. Запустите этот скрипт и там смотрите
Код: SQL
1.
2.
3.
SELECT compatibility_level, recovery_model_desc
FROM sys.databases
WHERE name = '<имя вашей базы>';
...
А вы шо думали, всё так просто?
Изменено: 13.11.2020, 15:25 - SandalTree
Рейтинг: 0 / 0
Вопросы по IT / бакап ресторе MS SQL
    #2578202
SandalTree
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
3. Запустите этот скрипт в вашей базе и смотрите свои самые большие таблицы.
Смотрите: Fill factor, %
Ещё посмотрите "Used_Data_Space_MB" + "Used_Index_Space_MB" и отношение к "Full_Size_MB".
Особенно обратите внимание на эти цифры когда ваша база вспухнет.
Код: 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.
;WITH InMemory as (
  SELECT object_id
    , SUM(CASE memory_consumer_type WHEN 2 THEN allocation_count ELSE 0 END) as row_count
    , SUM(CASE memory_consumer_type WHEN 2 THEN allocated_bytes ELSE 0 END)/8192. as Alloc_Pages
    , SUM(CASE memory_consumer_type WHEN 2 THEN used_bytes ELSE 0 END)/8192. as Used_Pages
    , SUM(CASE memory_consumer_type WHEN 2 THEN 0 ELSE allocated_bytes END)/8192. as Index_Alloc_Pages
    , SUM(CASE memory_consumer_type WHEN 2 THEN 0 ELSE used_bytes END)/8192. as Index_Used_Pages
    , SUM(allocated_bytes)/8192. as Total_Alloc_Pages
    , SUM(used_bytes)/8192. as Total_Used_Pages
  FROM sys.dm_db_xtp_memory_consumers
  WHERE object_id > 0
  GROUP BY object_id
  )
  SELECT CASE WHEN t.name Is Null THEN 'View' ELSE 'Table' END as Type,
  [Object Name] = '[' + OBJECT_SCHEMA_NAME(st.object_id) + '].[' + OBJECT_NAME(st.object_id) + ']',
  CASE WHEN t.is_memory_optimized > 0 THEN mc.row_count ELSE SUM(CASE WHEN st.index_id < 2 THEN st.row_count ELSE 0 END) END as row_count,
  ROUND(CAST(CASE WHEN t.is_memory_optimized > 0 THEN mc.Alloc_Pages ELSE SUM(CASE WHEN st.index_id < 2 THEN st.reserved_page_count ELSE 0 END) END AS float)/128.,3) as Data_Size_MB,
  ROUND(CAST(CASE WHEN t.is_memory_optimized > 0 THEN mc.Used_Pages ELSE SUM(CASE WHEN st.index_id < 2 THEN st.used_page_count ELSE 0 END) END AS float)/128.,3) as Used_Data_Space_MB,
  [Fill factor, %] = IsNull(CAST(CASE i.fill_factor WHEN 0 THEN 100 ELSE i.fill_factor END as CHAR(3)),'N/A'),
  ROUND(CAST(CASE WHEN t.is_memory_optimized > 0 THEN mc.Index_Alloc_Pages ELSE SUM(CASE WHEN st.index_id > 1 THEN st.reserved_page_count ELSE 0 END) END AS float)/128.,3) as Index_Size_MB,
  ROUND(CAST(CASE WHEN t.is_memory_optimized > 0 THEN mc.Index_Used_Pages ELSE SUM(CASE WHEN st.index_id > 1 THEN st.used_page_count ELSE 0 END) END AS float)/128.,3)as Used_Index_Space_MB,
  ROUND(CAST(CASE WHEN t.is_memory_optimized > 0 THEN mc.Total_Alloc_Pages ELSE SUM(st.reserved_page_count) END AS float)/128.,3) as Full_Size_MB,
  ROUND(CAST(CASE WHEN t.is_memory_optimized > 0 THEN mc.Total_Used_Pages ELSE SUM(st.used_page_count) END AS float)/128.,3) as Full_Used_Space_MB,
  t.max_column_id_used as MaxColumn,
  CASE WHEN t.is_memory_optimized > 0 THEN 'Yes' ELSE '' END as 'In-Memory',
  CASE WHEN t.temporal_type > 0 THEN t.temporal_type_desc ELSE '' END as Temporal,
  t.lock_escalation_desc as 'Lock Escalation'
FROM sys.dm_db_partition_stats st
LEFT JOIN InMemory as mc ON mc.object_id = st.object_id
LEFT JOIN sys.tables as t ON t.object_id = st.object_id
LEFT JOIN sys.indexes i ON i.OBJECT_ID = st.OBJECT_ID AND i.index_id = 1
WHERE OBJECT_SCHEMA_NAME(st.object_id) != 'sys'
GROUP BY OBJECT_SCHEMA_NAME(st.object_id), OBJECT_NAME(st.object_id), t.name
  , t.max_column_id_used, t.lock_escalation_desc, CAST(CASE i.fill_factor WHEN 0 THEN 100 ELSE i.fill_factor END as CHAR(3)), t.is_memory_optimized, mc.row_count, mc.Alloc_Pages, mc.Used_Pages, mc.Index_Alloc_Pages, mc.Index_Used_Pages, mc.Total_Alloc_Pages, mc.Total_Used_Pages, t.temporal_type, t.temporal_type_desc
ORDER BY Full_Size_MB DESC, row_count DESC
OPTION (RECOMPILE);
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
Вопросы по IT / бакап ресторе MS SQL
    #2584186
SandalTree
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
vad72  16.11.2020, 09:56
SandalTree  13.11.2020, 15:16
Код: SQL
1.
2.
3.
SELECT compatibility_level, recovery_model_desc
FROM sys.databases
WHERE name = '<имя вашей базы>';
compatibility_level recovery_model_desc
100 SIMPLE
предыдущий скрипт похоже не отработал.
Кто-ж знал что вы на 2008м сидите.

Кстати, что у вас даёт вот этот?
Цитата 
SELECT @@version
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
Вопросы по IT / бакап ресторе MS SQL
    #2584294
SandalTree
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
Попробуйте скрипт попроще.
Может он у вас пойдёт.
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELECT [Object Name] = '[' + OBJECT_SCHEMA_NAME(st.object_id) + '].[' + OBJECT_NAME(st.object_id) + ']',
  SUM(CASE WHEN st.index_id < 2 THEN st.row_count ELSE 0 END) as row_count,
  ROUND(CAST(SUM(CASE WHEN st.index_id < 2 THEN st.reserved_page_count ELSE 0 END) AS float)/128.,3) as Data_Size_MB,
  ROUND(CAST(SUM(CASE WHEN st.index_id < 2 THEN st.used_page_count ELSE 0 END) AS float)/128.,3) as Used_Data_Space_MB,
  [Fill factor, %] = IsNull(CAST(CASE i.fill_factor WHEN 0 THEN 100 ELSE i.fill_factor END as CHAR(3)),'N/A'),
  ROUND(CAST(SUM(CASE WHEN st.index_id > 1 THEN st.reserved_page_count ELSE 0 END) AS float)/128.,3) as Index_Size_MB,
  ROUND(CAST(SUM(CASE WHEN st.index_id > 1 THEN st.used_page_count ELSE 0 END) AS float)/128.,3)as Used_Index_Space_MB,
  ROUND(CAST(SUM(st.reserved_page_count) AS float)/128.,3) as Full_Size_MB,
  ROUND(CAST(SUM(st.used_page_count) AS float)/128.,3) as Full_Used_Space_MB,
  t.max_column_id_used as MaxColumn
FROM sys.dm_db_partition_stats st
LEFT JOIN sys.tables as t ON t.object_id = st.object_id
LEFT JOIN sys.indexes i ON i.OBJECT_ID = st.OBJECT_ID AND i.index_id = 1
WHERE OBJECT_SCHEMA_NAME(st.object_id) != 'sys'
GROUP BY OBJECT_SCHEMA_NAME(st.object_id), OBJECT_NAME(st.object_id), t.name
  , t.max_column_id_used, t.lock_escalation_desc
  , CAST(CASE i.fill_factor WHEN 0 THEN 100 ELSE i.fill_factor END as CHAR(3)), t.is_memory_optimized, t.temporal_type, t.temporal_type_desc
ORDER BY Full_Size_MB DESC, row_count DESC;
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Вопросы по IT / бакап ресторе MS SQL, Поиск: Искать сообщения, созданные автором: SandalTree  
Пользователи онлайн (10): Анонимы (8), Bing Bot, Yandex Bot 1 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


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