Несоответствие между результатом использования пространства (поля данных) таблицей, возвращенным sp_spaceused, и пространством после экспорта данных в csv - PullRequest
0 голосов
/ 14 апреля 2020

Я экспортирую данные с сервера SQL в плоский файл (CSV). Но я видел несоответствие между результатом используемого пространства (поле данных результата) таблицей, возвращенной sp_spaceused, и пространством после экспорта данных в csv.

например. sp_spaceused показывает используемое пространство в таблице 2 Гб. Но после экспорта в CSV-файл оно занимает 7 ГБ.

Может кто-нибудь помочь мне с этим.

1 Ответ

1 голос
/ 15 апреля 2020

Вот причины, по которым CSV может быть больше:

  • Запятые и символы новой строки не имеют эквивалента в представлении базы данных.
  • 4-байтовое целочисленное значение занимает 4 байта в базы данных, но может содержать до 11 символов в файле (например, -1 000 000 000).
  • Строка может быть сохранена с использованием широких наборов символов, но сохранена в виде отдельных байтов.
  • date с занимают 3 байта в базе данных, но, вероятно, 10 символов (ГГГГ-ММ-ДД) в наборе результатов.
  • datetime с занимают 8 байтов в базе данных, но 19-23 символа в наборе результатов.

Нет сомнений в других примерах.

Размер также может быть меньше. В базе данных есть служебные данные, которых нет в файле CSV:

  • Используемое пространство на страницах.
  • Пустые флаги.
  • Маленькие числа. «1» занимает только один символ в CSV, но 4 байта в данных.

И, без сомнения, другие примеры.

...