Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / разница размеров 2 очень похожих таблиц в 2 раза / 23 сообщений из 23, страница 1 из 1
15.02.2021, 10:16
    #40045368
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
есть 2 похожие таблицы в двух базах одна с общим размером полей 126 байт, вторая с общим размером 157 байт - поменены некоторые поля с iNT на BIGINT и добавлено 3 поля (int,decimal(18,2),timestamp)
количество записей примерно одинаковое ~ 700 млн
При этом размер данных(по sp_spaceused) в первой таблице 90GB а во второй 180GB
В чем причина? Неужели из-за изменения длины записи в 2 раза увеличились занятые страницы ?
...
Рейтинг: 0 / 0
15.02.2021, 10:39
    #40045374
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
LexusR
поменены некоторые поля с iNT на BIGINT
Это означает, что добавлены новые столбцы bigint, старые столбцы int будут удалены при перестроении таблицы.
...
Рейтинг: 0 / 0
15.02.2021, 10:59
    #40045378
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
в таблице изначально нарезаны столбцы bigint и добавлены 3 поля. Потом данные перелиты из старой таблицы в новую.
Вопрос в том что общая длина полей выросла с 126 до 157 байт то есть на 25 % а размер данных в таблице вырос в 2 раза
и против теоеретических 110-115 GB показывает 180 GB
...
Рейтинг: 0 / 0
15.02.2021, 11:32
    #40045382
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
...
Рейтинг: 0 / 0
15.02.2021, 11:54
    #40045391
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
LexusR,

разговор ни о чем, сравните структуру старой таблицы и новой, возьмите калькулятор и подсчитайте разницу.
...
Рейтинг: 0 / 0
15.02.2021, 12:10
    #40045399
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
уже посчитал - я же написал что старая структура 126 байт сумма размеров всех полей а новая 157 байт итого на 700 млн должно быть
110ГБ а sp_spaceused показывает размер данных (без индексов) 189ГБ
...
Рейтинг: 0 / 0
15.02.2021, 12:45
    #40045412
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
старая таблица
Код: 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.
CREATE TABLE [dbo].[StateLetter](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Letter_Id] [int] NOT NULL,
	[StatusReasonLetter_Id] [int] NOT NULL,
	[Date] [datetime] NOT NULL,
	[DateActual] [datetime] NOT NULL,
	[Employee_Id] [int] NOT NULL,
	[StateDocument_Id] [int] NULL,
	[Hidden] [bit] NOT NULL,
	[First] [bit] NULL,
	[Amount] [int] NOT NULL,
	[BranchPrice] [numeric](18, 2) NULL,
	[Branch_Id] [int] NULL,
	[SuccessStatusReasonLetter_Id] [int] NULL,
	[PriceDelivery] [numeric](18, 2) NULL,
	[PriceReturn] [numeric](18, 2) NULL,
	[PriceNotice] [numeric](18, 2) NULL,
	[AmountReturn] [int] NULL,
	[Ord] [int] NULL,
	[Document_Id] [int] NULL,
	[Lat] [float] NULL,
	[Long] [float] NULL,
	[DISTANCE] [float] NULL,
	[DaysDelta] [int] NULL,
 CONSTRAINT [PK_LetterDocument] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
...
Рейтинг: 0 / 0
15.02.2021, 12:45
    #40045413
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
новая таблица
Код: 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.
CREATE TABLE [dbo].[StateLetter](
	[Letter_Id] [bigint] NOT NULL,
	[Id] [bigint] IDENTITY(1,1) NOT NULL,
	[Document_Id] [bigint] NULL,
	[StateDocument_Id] [bigint] NULL,
	[Branch_Id] [int] NULL,
	[Date] [datetime] NOT NULL,
	[DateActual] [datetime] NOT NULL,
	[Employee_Id] [int] NOT NULL,
	[StatusReasonLetter_Id] [int] NOT NULL,
	[SuccessStatusReasonLetter_Id] [int] NULL,
	[Hidden] [bit] NULL,
	[First] [bit] NULL,
	[Amount] [int] NULL,
	[BranchPrice] [numeric](18, 2) NULL,
	[PriceDelivery] [numeric](18, 2) NULL,
	[PriceReturn] [numeric](18, 2) NULL,
	[PriceNotice] [numeric](18, 2) NULL,
	[AmountReturn] [int] NULL,
	[Ord] [int] NULL,
	[Lat] [numeric](9, 6) NULL,
	[Long] [numeric](9, 6) NULL,
	[DISTANCE] [float] NULL,
	[DaysDelta] [int] NULL,
	[CalcStatusReasonLetter_Id] [int] NULL,
	[CalcPrice] [numeric](18, 2) NULL,
	[rowversion] [timestamp] NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Letter_Id] ASC,
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
...
Рейтинг: 0 / 0
15.02.2021, 13:25
    #40045432
разница размеров 2 очень похожих таблиц в 2 раза
Эх... а как вы данные переливали в новую таблицу? Может банально фрагментация на новой таблице высокая потому и такие результаты. Вставляли с WITH(TABLOCK)?
...
Рейтинг: 0 / 0
15.02.2021, 13:44
    #40045440
разница размеров 2 очень похожих таблиц в 2 раза
Какие еще индексы у вас там есть? Кроме кластерных. Есть подозрение что таки еще что-то прячете :)
...
Рейтинг: 0 / 0
15.02.2021, 14:35
    #40045455
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
+ fill factor может быть разный
...
Рейтинг: 0 / 0
15.02.2021, 15:46
    #40045500
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
komrad,
после заливки делал шринк базы с дефрагментацией.
индексы есть и они разные , но я смотрю разницу по данным без индексов
...
Рейтинг: 0 / 0
15.02.2021, 15:57
    #40045503
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
komrad,

EXEC sp_configure 'fill factor' ---- 100 на обоих серверах
...
Рейтинг: 0 / 0
15.02.2021, 15:59
    #40045505
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
name minimum maximum config_value run_value
fill factor (%) 0 100 0 0
...
Рейтинг: 0 / 0
15.02.2021, 16:28
    #40045519
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
LexusR
komrad,

EXEC sp_configure 'fill factor' ---- 100 на обоих серверах

это серверный
лучше проверить в sys.indexes для ваших таблиц (index_id=1)
...
Рейтинг: 0 / 0
15.02.2021, 16:31
    #40045521
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
komrad
LexusR
komrad,

EXEC sp_configure 'fill factor' ---- 100 на обоих серверах

это серверный
лучше проверить в sys.indexes для ваших таблиц (index_id=1)

А смысл?
Он используется только при ребилде и начальном построении индекса
К реальной заполненности страниц он имеет очень далекое отношение
...
Рейтинг: 0 / 0
15.02.2021, 16:59
    #40045535
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
LexusR,

гляньте на avg_page_space_used_in_percent в sys.dm_db_index_physical_stats c SAMPLED а лучше DETAILED


!!!DETAILED вызовет полный скан таблицы включая нелистовые уровни
...
Рейтинг: 0 / 0
15.02.2021, 18:50
    #40045568
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
Вы были правы - в старой таблице 98.73922659% для index_id=1 а в новой 59.18146775%
Как с этим бороться и надо ли ?
...
Рейтинг: 0 / 0
15.02.2021, 18:52
    #40045569
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
я имею в виду avg_page_space_used_in_percent в sys.dm_db_index_physical_stats
...
Рейтинг: 0 / 0
15.02.2021, 19:03
    #40045571
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
LexusR
Вы были правы - в старой таблице 98.73922659% для index_id=1 а в новой 59.18146775%
Как с этим бороться и надо ли ?

Как - ребилд.
Нужно ли - это сложный вопрос.
Из потенциальных плюсов такого низкого avg_page_space_used_in_percent - отсутствие расщепления при вставка в середину индекса (кластерного в вашем случае)
Из потенциальных минусов - больший объем как на диске, так и в памяти.
...
Рейтинг: 0 / 0
15.02.2021, 19:06
    #40045574
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
я так понимаю надо дефрагментацию кластерного индекса запустить или реиндексацию. Что быстрее сработает на 700 млн записей ?
...
Рейтинг: 0 / 0
15.02.2021, 19:10
    #40045575
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
LexusR
я так понимаю надо дефрагментацию кластерного индекса запустить или реиндексацию. Что быстрее сработает на 700 млн записей ?

Я не знаю, что в вашем понимании дефрагментация и реиндексация индекса
Самый быстрый способ - это alter index rebuild
...
Рейтинг: 0 / 0
15.02.2021, 19:35
    #40045580
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разница размеров 2 очень похожих таблиц в 2 раза
запустил ребилд так как выгоды от отсутствия расщепления не будет. Вставка старых записей была с отключением автоинкремента а дальше будет работать автоинкремент и ключи будут монотонно возрастающие. А вот уменьшить объем памяти будет весьма полезно.
Спасибо за советы.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / разница размеров 2 очень похожих таблиц в 2 раза / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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