Azure SQL DB Serverless no se pausará automáticamente

Sep 01 2020

Al mirar Query Performance Insight, encontré que esta consulta se ejecuta 3-4 veces / h (mi configuración de pausa automática es 1 h):

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

¿Alguna idea sobre lo que podría estar pasando? ¿Existe alguna forma de detectar el origen de la consulta? Solo tengo una máquina virtual conectada a la base de datos y tengo los servicios desactivados, por lo que no estoy seguro de qué está causando esta llamada periódica.

Respuestas

Daltin Sep 15 2020 at 20:23

Encontré el problema usando Query Performance Insight, donde pude ver la actividad real, incluido el texto de la consulta. A pesar de que había configurado el propio programador del servicio para que se durmiera, el servicio seguía consultando la base de datos. Una vez que apagué el servicio usando el Programador de tareas, la base de datos se detuvo después de una hora de inactividad.

Query Performance Insight es una gran herramienta para determinar exactamente qué está sucediendo con su base de datos . Sin embargo, una cosa para recordar, si la base de datos está en pausa y navega a Query Performance Insight, la base de datos se pondrá en línea.

AlbertoMorillo Sep 01 2020 at 12:56

Desafortunadamente, esta es una consulta del sistema que se activa en Azure SQL Database cuando sus bases de datos usan índices de texto completo. Está viendo que esto se ejecuta casi cada hora, pero es posible que a veces lo vea cada 5 minutos. Esto está sucediendo desde principios de este año.

La búsqueda de texto completo se considera un servicio externo en Azure Serverless que explica que la consulta se ejecuta con regularidad en la base de datos. Porfavor lea abajo:

Extracto: "Los recursos de una base de datos sin servidor están encapsulados por el paquete de la aplicación, la instancia SQL y las entidades del grupo de recursos del usuario.

El paquete de la aplicación es el límite de administración de recursos más externo para una base de datos, independientemente de si la base de datos está en un nivel de computación aprovisionado o sin servidor. El paquete de la aplicación contiene la instancia de SQL y los servicios externos que, en conjunto, abarcan todos los recursos del sistema y del usuario utilizados por una base de datos en SQL Database. Ejemplos de servicios externos incluyen R y búsqueda de texto completo. "Fuente aquí .