2016-01-13 4 views
2

Моя системаВыпуск SQL Server 2014 памяти неиспользованной памяти оптимизированная таблица

Microsoft SQL Server 2014 (SP1-CU4) (KB3106660) - 12.0.4436.0 (X64) 2 декабря 2015 16:09:44 Copyright (в) Microsoft Corporation Enterprise издание: ядро ​​на основе лицензирования (64-разрядная версия) на Windows NT 6.3 (Build 9600:) (гипервизор)

Я использую две таблицы table1 и `` памяти optimazed таблицу table2` (каждый размер 27 ГБ)

падение table1

IF OBJECT_ID('table1') IS NOT NULL 

BEGIN 

    DROP TABLE [dbo].[table1] 

END 

После:

SQL сервера Использование памяти Memory Optimazed объектов Отчеты

Table Name =table2 Table Used Memory = 26582,50 Table Unused Memory = 26792,69 

Как я могу запустить SQL сервер сборки мусора вручную? это возможно или нет? мне нужно «Таблица неиспользуемой памяти» Release, потому что другой процесс всегда дает эту ошибку

«Существует недостаточно системной памяти в пуле ресурсов„Pool“для выполнения данного запроса.»

Спасибо Вам

ответ

6

данных для оптимизации памяти таблиц проводится в файлах данных & дельта.

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

Данные дельта-файла & поддерживаются в парах как пары контрольных точек (CFP). Со временем закрытые CFP объединяются на основе политики слияния из нескольких CFP в один объединенный целевой CFP.

Фоновая нить оценивает все закрытые CFP, используя политику слияния, а затем инициирует один или несколько запросов слияния для квалификационных CFP. Эти запросы слияния обрабатываются в автономном потоке контрольной точки. Оценка политики слияния проводится периодически, а также при закрытии контрольно-пропускного пункта.

Вы можете принудительно объединить файлы с помощью хранимой процедуры sys.sp_xtp_merge_checkpoint_files после контрольной точки.

EDIT

Run заявление:

SELECT 
    container_id, 
    internal_storage_slot, 
    file_type_desc, 
    state_desc, 
    inserted_row_count, 
    deleted_row_count, 
    lower_bound_tsn, 
    upper_bound_tsn 
FROM 
    sys.dm_db_xtp_checkpoint_files 
ORDER BY 
    file_type_desc, 
    state_desc 

Затем найдите строки со статусом В процессе строительства и сделать отметку о нижней и верхней идентификатор транзакции.

Теперь выполните:

EXEC sys.sp_xtp_merge_checkpoint_files 'myDB',1003,1004; 

где 1003 и 1004 является нижней и верхней идентификатор транзакции.

Чтобы полностью удалить файлы, которые вы должны будете убедиться, что вы должны:

  1. Run Выберите заявление выше
  2. Run EXEC sys.sp_xtp_merge_checkpoint_files сверху
  3. выполнить полное резервное копирование
  4. CHECKPOINT
  5. Резервное копирование журнала
  6. EXEC sp_xtp_check point_force_garbage_collection;
  7. Checkpoint
  8. Exec sp_filestream_force_garbage_collection «MyDB», чтобы удалить файлы помечаются как Надгробие

Вы, возможно, потребуется выполнить шаги 3 - 7 дважды, чтобы полностью избавиться от файлов.

См The DBA who came to tea article

идти CFP через следующие этапы:

• PRECREATED - небольшой набор СЛТЫ хранятся предварительно выделено, чтобы минимизировать или устранить любые ожидания выделить новые файлы, как транзакция выполняется. Они имеют размер в размере 128 МБ и размер файла дельта 8 МБ, но не содержат данных. Количество CFP вычисляется как количество логических процессоров или планировщиков с минимумом 8. Это фиксированные расходы на хранение в базах данных с оптимизированными по памяти таблицами

• ПОД СТРОИТЕЛЬСТВОМ - Комплект CFP, в котором хранятся только что вставленные и, возможно, удаленные строки данных с момента последней контрольной точки.

• ACTIVE - они содержат вставленные/удаленные строки из предыдущих закрытых контрольных точек. Эти CFP содержат все необходимые вставленные/удаленные строки, необходимые перед применением активной части журнала транзакций при перезапуске базы данных. Мы ожидаем, что размер этих CFP будет составлять примерно 2x объема памяти в оптимизированных по памяти таблицах, предполагающих операцию слияния, в соответствии с транзакционной нагрузкой.

• MERGE TARGET - CFP хранит консолидированные строки данных из CFP (-ов), которые были определены политикой слияния. После того, как слияние установлено, MERGE TARGET переходит в состояние ACTIVE

• СЛУЧАЙНЫЙ ИСТОЧНИК - После того, как операция слияния установлена, исходные CFP отмечены как СОХРАНЕННЫЙ ИСТОЧНИК. Обратите внимание, что оценщик политики объединения может идентифицировать множественные слияния, CFP может участвовать только в одной операции слияния.

• ТРЕБУЕТСЯ ДЛЯ РЕЗЕРВНОГО КОПИРОВАНИЯ/НА - После того, как слияние было установлено, а MERGE TARGET CFP является частью прочной контрольной точки, переход CFP-источника слияния переходит в это состояние. CFP в этом состоянии необходимы для оперативной корректности базы данных с оптимизированной по памяти таблицей. Например, чтобы вернуться с прочного контрольно-пропускного пункта, чтобы вернуться во времени. CFP может быть помечен для сбора мусора, как только точка усечения журнала перемещается за пределы диапазона транзакций.

• ПЕРЕХОД НА ТОМБСТОН - Эти CFP не нужны при помощи OLTP-модуля в памяти, они могут быть собраны в мусор. Это состояние указывает, что эти CFP ждут, когда фоновый поток перейдет к следующему состоянию. TOMBSTONE

• TOMBSTONE - Эти CFP ждут сбора мусора, собранного сборщиком мусора.Пожалуйста, обратитесь к сборщику мусора FS для получения более подробной информации.

+0

Ty для ответа, но не работает ваше решение, мой простой режим восстановления db, и я попробовал EXEC sp_xtp_checkpoint_force_garbage_collection и контрольную точку; table2 always Таблица Неиспользуемая память = 26792,69 – Fidelio

+0

Вы выполнили сначала sys.sp_xtp_merge_checkpoint_files? - См Обработать –

+0

Да 1 Have полное резервное копирование 2- CHECKPOINT 3- выберите оператор не может видеть СОГЛАСНО статус КОНСТРУКЦИИ Я вижу MERGED ИСТОЧНИК PRECREATED ACTIVE надгробной плиты 4- EXEC sys.sp_xtp_merge_checkpoint_files ' table2' , 111254,111260; (Active status work, но размер таблицы dont chance, MERGED SOURCE dont work, TOMBSTONE и PRECREATED не видят идентификатор транзакции) – Fidelio

Смежные вопросы