Azure SQL DB Serverless non verrà messo in pausa automaticamente

Sep 01 2020

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

Daltin Sep 15 2020 at 20:23

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.

AlbertoMorillo Sep 01 2020 at 12:56

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 .