Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разница в размере бекапов  [new]
AVSONE
Member

Откуда:
Сообщений: 154
Есть версия БД sql 2005, полученная в виде bak файла. И версия поднятая из txt. После поднятия таблицы индексируются.

Поверхностное сравнение (подсчет строк и select * from db1..table except select * from db2..table показывает что базы одинаковые.
Поля типа txt никак не сравниваются.

После некоей обработки полученные результаты в выгрузке также одинаковы.

После бекапа обеих баз bak файлы имеют размер 8 и 5 гб.

за счет чего может быть разница в размерах?
21 фев 18, 13:32    [21207896]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
AVSONE
И версия поднятая из txt.
...
Поля типа txt никак не сравниваются.

какие еще txt?
21 фев 18, 13:37    [21207913]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
awesome :)
21 фев 18, 13:44    [21207942]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
AVSONE
Member

Откуда:
Сообщений: 154
Yasha123,


поля типа text. Вторая база поднималась из текстового файла
21 фев 18, 14:06    [21208044]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
AVSONE
Вторая база поднималась из текстового файла

что означает "поднималась из текстового файла"?
из бэкапа мне понятно, это restore database ... from disk = ....
из текстового файла как выглядит птоцесс?
21 фев 18, 14:12    [21208080]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
AVSONE
После бекапа обеих баз bak файлы имеют размер 8 и 5 гб.
из чего вы там что подняли не важно если в итоге у вас 2 базы которые вы потом бэкапите.

1. после всех ваших телодвижений с этими базами и до их бэкапирования размеры их какие (размеры баз и их журналов)
2. бэкапите потом как, фулл?
21 фев 18, 14:14    [21208095]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Дедушка
из чего вы там что подняли не важно если в итоге у вас 2 базы которые вы потом бэкапите.

почему это неважно?
может "из текстового файла" это скриптом и с инсертами данных.
и что в этих инсертах, нам неизвестно.
у него же там нтексты.
вот может они и не перенеслись скриптами.
число строк ок, то же, ну а данные?
таблицы надо было сравнивать через sp_spaceused хотя бы.
а то мало ли, половина полей пуста, а число строк одно и то же
21 фев 18, 14:18    [21208114]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
полученная в виде bak
Guest
AVSONE
Yasha123,


поля типа text. Вторая база поднималась из текстового файла

Тип TEXT (NTEXT, IMAGE) - вполне конкретная хрень. Которая именно что отдельно хранится относительно других типов данных.
С источником "Текстовый файл" тип данных "TEXT" связан примерно как квадратный корень с фетровой шляпой.

А в bak какие типы данных?
21 фев 18, 14:47    [21208303]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
fhil
Guest
AVSONE,

для db1, db2

SELECT OBJECT_NAME(sp.[object_id]) ,[total_pages] = SUM(sau.[total_pages])
FROM sys.allocation_units sau with (nolock)
INNER JOIN sys.partitions sp with (nolock)
	ON (sau.[type] in (1,3) AND sau.[container_id] = sp.[hobt_id]) OR (sau.[type] in (2) AND sau.[container_id] = sp.[partition_id])
INNER JOIN sys.objects so with (nolock)
	ON so.[object_id] = sp.[object_id] AND so.[is_ms_shipped]=0
GROUP BY sp.[object_id]
ORDER BY SUM(sau.[total_pages]) desc
21 фев 18, 15:07    [21208428]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
AVSONE
Member

Откуда:
Сообщений: 154
Yasha123
AVSONE
Вторая база поднималась из текстового файла

что означает "поднималась из текстового файла"?
из бэкапа мне понятно, это restore database ... from disk = ....
из текстового файла как выглядит птоцесс?


create db , create table , bulk insert, index... . Примерно так. Производитель баз заявляет что их скрипт и текстовые версии дают легитимный результат. Те данные должны быть идентичными поднятым из бинарного бекапа. Поэтому sql 2005 вычеркивают из списка поддерживаемых версий. Остается только текстовая версия.
21 фев 18, 17:19    [21208980]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
AVSONE
Member

Откуда:
Сообщений: 154
Дедушка
AVSONE
После бекапа обеих баз bak файлы имеют размер 8 и 5 гб.
из чего вы там что подняли не важно если в итоге у вас 2 базы которые вы потом бэкапите.

1. после всех ваших телодвижений с этими базами и до их бэкапирования размеры их какие (размеры баз и их журналов)
2. бэкапите потом как, фулл?


1 -не смотрел.
2. - да .
21 фев 18, 17:27    [21209023]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
AVSONE

create db , create table , bulk insert, index... .

это называется "перенесли базу(структуру) скриптами".
а данные как переносили?
bulk insert -- данные заливали из файлов?
студия не генерит балки, она обычные инсерты генерит.
а файлы как заливали, с формат-файлами?
поди накосячено на переносе текстов
21 фев 18, 18:24    [21209297]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
nvv
Member

Откуда:
Сообщений: 54
Сдались вам эти бэкапы. Сравните для начала базы. Файлы, таблицы, записи, размеры, структуру наконец... Разница будет сразу видна.
21 фев 18, 22:42    [21209917]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
Тяп-ляп
Member

Откуда: Москва
Сообщений: 797
Количество страниц с данными разное в этих БД.
fhil уже дал скрипт для проверки.
22 фев 18, 10:22    [21210381]     Ответить | Цитировать Сообщить модератору
 Re: Разница в размере бекапов  [new]
AVSONE
Member

Откуда:
Сообщений: 154
fhil
AVSONE,

для db1, db2

SELECT OBJECT_NAME(sp.[object_id]) ,[total_pages] = SUM(sau.[total_pages])
FROM sys.allocation_units sau with (nolock)
INNER JOIN sys.partitions sp with (nolock)
	ON (sau.[type] in (1,3) AND sau.[container_id] = sp.[hobt_id]) OR (sau.[type] in (2) AND sau.[container_id] = sp.[partition_id])
INNER JOIN sys.objects so with (nolock)
	ON so.[object_id] = sp.[object_id] AND so.[is_ms_shipped]=0
GROUP BY sp.[object_id]
ORDER BY SUM(sau.[total_pages]) desc


table1	222505	380002
table2 136367 187967
table3 68087 86602
table4 19815 23510
table5 14818 15282
table6 5861 5833
table7 1109 3268
table8 787 513
table9 17 17

спасибо за скрипт. Буду дальше разбираться
23 фев 18, 10:09    [21213341]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить