Таблица с одинаковыми строками разных размеров в разных базах данных (Azure SQL) - почему и что изменилось после усечения и повторного заполнения - PullRequest
0 голосов
/ 21 апреля 2020

У меня был сценарий, в котором размер таблицы был разным для двух разных БД. Ежедневный ETL принимает данные в обеих этих БД.

Вопрос 1 : Почему существует огромная разница в размерах данных между двумя таблицами, когда они имеют одинаковое количество строк

Вопрос 2 : Чтобы проверить, вызывает ли ETL проблему, я обрезал базу данных STG и заново заполнил ее. Затем размер резко сократился. Что произошло в фоновом режиме?

Разница в размере таблицы ниже между prod и staging

                     Reserved           data                index           Unused
            PROD    GB  63.81627655 =   34.31835938     +   25.10404968  +  4.393867493
    STG (Before)    GB  121.465538  =   63.31293488     +   33.34213257  +  24.81047058                 
    STG (After)     GB  46.60236359 =   24.79945374     +   20.24600983  +  1.556900024

1 Ответ

0 голосов
/ 21 апреля 2020

Без подробностей о том, как вы населили вещи, трудно сказать наверняка. Тем не менее, Azure SQL DB содержит функцию ускоренного восстановления баз данных (ADR), которая некоторое время сохраняет предыдущие версии страниц в базе данных для ускорения восстановления при сбоях (что сокращает время простоя при сбоях, так как восстановление должно происходить для согласования журнал и файл базы данных в системе баз данных). Есть фоновое задание для очистки старых страниц, когда они больше не нужны.

Есть также фоновые задания, которые очищают другие вещи. Они делают это, чтобы ускорить выполнение основных операций в вашей базе данных, отодвигая работу из вашего приложения в фоновый режим. Так что, вероятно, один или несколько из них вызывают различия, которые вы видите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...