Sdílet prostřednictvím


Monitorování úložiště OLTP v paměti ve službě Azure SQL Managed Instance

Platí pro: Azure SQL Managed Instance

V případě OLTP v paměti se data v tabulkách a proměnných tabulek optimalizovaných pro paměť nacházejí v úložišti OLTP v paměti.

Určení, jestli se data vejdou do limitu úložiště OLTP v paměti

Úroveň služby Pro důležité obchodní informace zahrnuje určitou velikost maximální paměti OLTP v paměti určenou počtem virtuálních jader.

Odhad požadavků na paměť pro tabulku optimalizovanou pro paměť funguje stejně jako sql Server jako ve službě Azure SQL Managed Instance. Kontrola požadavků na paměť odhadu trvá několik minut.

Řádky proměnných tabulek a tabulek a indexů se počítají do maximální velikosti uživatelských dat. Kromě toho ALTER TABLE potřebuje dostatek místa k vytvoření nové verze celé tabulky a jejích indexů.

Po překročení tohoto limitu můžou operace vložení a aktualizace selhávají s chybou 41823.

Oprava situací v úložišti OLTP mimo paměť – chyba 41823

Při splnění limitu úložiště OLTP v paměti ve vaší databázi dojde k selhání operací INSERT, UPDATE, ALTER a CREATE s chybou 41823. Tato chyba může způsobit přerušení aktivní transakce.

Chyba 41823 značí, že tabulky a proměnné tabulky optimalizované pro paměť v instanci dosáhly maximální velikosti úložiště OLTP v paměti.

Pokud chcete tuto chybu vyřešit, proveďte následující:

  • Odstranění dat z tabulek optimalizovaných pro paměť, potenciálně snižování zátěže dat do tradičních tabulek založených na disku; nebo
  • Upgradujte úložiště počtu virtuálních jader pro data, která potřebujete zachovat v tabulkách optimalizovaných pro paměť.

Poznámka:

Ve výjimečných případech může být chyba 41823 přechodná, což znamená, že je k dispozici dostatek úložiště OLTP v paměti a opakování operace proběhne úspěšně. Proto doporučujeme monitorovat celkové dostupné úložiště OLTP v paměti a opakovat při prvním výskytu chyby 41823. Další informace o logice opakování najdete v tématu Detekce konfliktů a logika opakování s OLTP v paměti.

Monitorování pomocí zobrazení dynamické správy

  • Díky pravidelnému monitorování spotřeby paměti můžete určit, jak se spotřeba paměti zvětšuje a kolik hlavní místnosti jste nechali v limitech prostředků. Určete, kolik paměti spotřebovávají objekty ve vaší databázi nebo instanci. Zobrazení dynamické správy například sys.dm_db_xtp_table_memory_stats nebo sys.dm_os_memory_clerks.

    • Spotřebu paměti pro všechny uživatelské tabulky, indexy a systémové objekty můžete najít pomocí sys.dm_db_xtp_table_memory_statsdotazu:

      SELECT object_name(object_id) AS [Name], *  
         FROM sys.dm_db_xtp_table_memory_stats;
      
    • Paměť přidělená modulu OLTP v paměti a objekty optimalizované pro paměť se spravují stejným způsobem jako jakýkoli jiný příjemce paměti v databázi. Pracovníci paměti typu MEMORYCLERK_XTP účty pro veškerou paměť přidělenou modulu OLTP v paměti. Pomocí následujícího dotazu sys.dm_os_memory_clerks vyhledejte veškerou paměť používanou modulem OLTP v paměti, včetně paměti vyhrazené pro konkrétní databáze.

      -- This DMV accounts for all memory used by the in-memory engine  
      SELECT [type], [name]
           , memory_node_id  
           , pages_kb/1024 AS pages_MB   
      FROM sys.dm_os_memory_clerks 
      WHERE [type] LIKE '%xtp%';
      
      type                 name       memory_node_id pages_MB  
      -------------------- ---------- -------------- --------------------  
      MEMORYCLERK_XTP      Default    0              18  
      MEMORYCLERK_XTP      DB_ID_5    0              1358  
      MEMORYCLERK_XTP      Default    64             0  
      
    
    
  • Další informace o chybách nedostatku paměti ve službě Azure SQL Managed Instance můžete získat také pomocí zobrazení dynamické správy sys.dm_os_out_of_memory_events. Příklad:

    SELECT * FROM sys.dm_os_out_of_memory_events ORDER BY event_time DESC;
    

    Další informace najdete v tématu Monitorování a řešení potíží s využitím paměti OLTP v paměti.