Azure SQL DB Serverless não pausa automaticamente

Sep 01 2020

Olhando para Query Performance Insight, descobri que esta consulta era executada de 3 a 4 vezes / hora (minha configuração de pausa automática é 1 hora):

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

Alguma ideia do que pode estar acontecendo? Existe uma maneira de detectar a origem da consulta? Tenho apenas uma VM conectada ao banco de dados e tenho os serviços desativados, portanto, não tenho certeza do que está causando essa chamada periódica.

Respostas

Daltin Sep 15 2020 at 20:23

Eu encontrei o problema usando o Query Performance Insight, onde pude visualizar a atividade real, incluindo o texto da consulta. Embora eu tenha configurado o próprio agendador do serviço para fazê-lo hibernar, o serviço ainda estava consultando o banco de dados. Assim que desliguei o serviço usando o Agendador de tarefas, o banco de dados fez uma pausa após uma hora de inatividade.

O Query Performance Insight é uma ótima ferramenta para determinar exatamente o que está acontecendo com seu banco de dados . Porém, deve-se lembrar que se o banco de dados for pausado e você navegar para Query Performance Insight, o banco de dados será colocado online.

AlbertoMorillo Sep 01 2020 at 12:56

Infelizmente, esta é uma consulta do sistema que é disparada no Banco de Dados SQL do Azure quando seus bancos de dados usam índices de Texto Completo. Você está vendo isso rodando quase a cada hora, mas pode vê-lo rodando a cada 5 minutos às vezes. Isso está acontecendo desde o início deste ano.

A Pesquisa de texto completo é considerada um serviço externo no Azure Serverless que explica a consulta que vem regularmente para ser executada no banco de dados. Por favor leia abaixo:

Trecho: "Os recursos de um banco de dados sem servidor são encapsulados por pacote de aplicativo, instância SQL e entidades de pool de recursos do usuário.

O pacote do aplicativo é o limite mais externo de gerenciamento de recursos para um banco de dados, independentemente de o banco de dados estar em uma camada de computação provisionada ou sem servidor. O pacote do aplicativo contém a instância SQL e serviços externos que, juntos, abrangem todos os recursos do usuário e do sistema usados ​​por um banco de dados no Banco de Dados SQL. Exemplos de serviços externos incluem R e pesquisa de texto completo. "Fonte aqui .