Azure SQL DB Serverless non verrà messo in pausa automaticamente
Guardando Query Performance Insight ho trovato questa query in esecuzione 3-4 volte / ora (l'impostazione della pausa automatica è 1 ora):
SELECT c.*,
i.object_id, i.unique_index_id, i.is_enabled, i.change_tracking_state_desc, i.has_crawl_completed,
i.crawl_type_desc, i.crawl_start_date, crawl_end_date,
i.incremental_timestamp, i.stoplist_id, i.data_space_id, i.property_list_id,
cast(OBJECTPROPERTYEX(i.object_id, 'TableFullTextMergeStatus') as int) as merge_status,
cast(OBJECTPROPERTYEX(i.object_id, 'TableFulltextDocsProcessed') as int) as docs_processed,
cast(OBJECTPROPERTYEX(i.object_id, 'TableFulltextFailCount') as int) as fail_count,
cast(OBJECTPROPERTYEX(i.object_id, 'TableFulltextItemCount') as int) as item_count,
cast(OBJECTPROPERTYEX(i.object_id, 'TableFulltextKeyColumn') as int) as key_column,
cast(OBJECTPROPERTYEX(i.object_id, 'TableFulltextPendingChanges') as int) as pending_changes,
cast(OBJECTPROPERTYEX(i.object_id, 'TableFulltextPopulateStatus') as int) as populate_status
FROM [46e881b7-c5f1-41cb-8eee-7c92a89cba41].sys.dm_fts_active_catalogs c
JOIN [46e881b7-c5f1-41cb-8eee-7c92a89cba41].sys.fulltext_indexes i on c.catalog_id = i.fulltext_catalog_id
Qualche idea su cosa potrebbe succedere? C'è un modo per rilevare l'origine della query? Ho solo una VM collegata al db e ho i servizi disattivati, quindi non sono sicuro di cosa stia causando questa chiamata periodica.
Risposte
Ho riscontrato il problema utilizzando Query Performance Insight, dove sono stato in grado di visualizzare l'attività effettiva, incluso il testo della query. Anche se avevo configurato lo scheduler del servizio per farlo andare a dormire, il servizio stava ancora interrogando il DB. Una volta disattivato effettivamente il servizio utilizzando l'Utilità di pianificazione, il DB si è interrotto dopo un'ora di inattività.
Query Performance Insight è un ottimo strumento per determinare esattamente cosa sta succedendo con il tuo database . Una cosa da ricordare, tuttavia, se il database è in pausa e si accede a Query Performance Insight, il database verrà portato in linea.
Purtroppo si tratta di una query di sistema che viene attivata sul database SQL di Azure quando i database utilizzano indici full-text. Lo vedi in esecuzione quasi ogni ora, ma a volte potresti vederlo in esecuzione ogni 5 minuti. Questo sta accadendo dall'inizio di quest'anno.
La ricerca full-text è considerata un servizio esterno su Azure Serverless che spiega che la query viene eseguita regolarmente sul database. Per favore leggi sotto:
Estratto: "Le risorse di un database senza server sono incapsulate dal pacchetto dell'app, dall'istanza SQL e dalle entità del pool di risorse utente.
Il pacchetto dell'app è il limite di gestione delle risorse più esterno per un database, indipendentemente dal fatto che il database si trovi in un livello di calcolo senza server o con provisioning. Il pacchetto dell'app contiene l'istanza SQL e i servizi esterni che insieme coprono tutte le risorse utente e di sistema utilizzate da un database nel database SQL. Esempi di servizi esterni includono R e ricerca full-text. "Fonte qui .