web-dev-qa-db-fra.com

Azurebb La base de données 'TEMPDB' a atteint son quota de taille

Nous sommes exécutant une instance de base de données V12 Azure sur le niveau S3. Il y a encore environ 100 Go d'espace libre sur la base de données. Lors du chargement de 85 Mo de fichier XML avec SSIS en cours d'exécution sur un autre serveur SQL non Azure et insérez-le directement dans la base de données Azure, l'insert se bloque sur la base de données cible avec l'erreur suivante.

la base de données 'TEMPDB' a atteint son quota de taille. Partition ou Supprimer des données, déposer des index ou consulter la documentation pour les résolutions possibles.

Y a-t-il une limite sur la TEMPDB ou une idée de la raison pour laquelle cela se bloque? Il est impossible que le fichier de 85 Mo puisse remplir l'espace restant de la base de données. Le tempdb semble caché, comment puis-je surveiller son utilisation?

4
Jan

Vous pouvez exécuter ci-dessous pour récupérer des informations sur lesquelles les tâches (dans la base de données Azure V12) utilisent TEMPDB (exécutée depuis votre utilisateurDB):

SELECT es.Host_name , es.login_name , es.program_name
     , st.dbid as QueryExecContextDBID, DB_NAME(st.dbid) as QueryExecContextDBNAME
     , st.objectid as ModuleObjectId
     , SUBSTRING(st.text, er.statement_start_offset/2 + 1
                        ,(CASE WHEN er.statement_end_offset = -1 
                               THEN LEN(CONVERT(nvarchar(max),st.text))*2 
                               ELSE er.statement_end_offset
                          END - er.statement_start_offset)/2
                ) as Query_Text
     , tsu.session_id ,tsu.request_id, tsu.exec_context_id
     , (tsu.user_objects_alloc_page_count - tsu.user_objects_dealloc_page_count) as OutStanding_user_objects_page_counts
     , (tsu.internal_objects_alloc_page_count - tsu.internal_objects_dealloc_page_count) as OutStanding_internal_objects_page_counts
     , er.start_time, er.command, er.open_transaction_count
     , er.percent_complete, er.estimated_completion_time
     , er.cpu_time, er.total_elapsed_time, er.reads,er.writes
     , er.logical_reads, er.granted_query_memory 
FROM tempdb.sys.dm_db_task_space_usage tsu  
JOIN sys.dm_exec_requests er 
    ON tsu.session_id = er.session_id 
   AND tsu.request_id = er.request_id  
JOIN sys.dm_exec_sessions es 
    ON tsu.session_id = es.session_id   
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) st 
WHERE (tsu.internal_objects_alloc_page_count 
      +tsu.user_objects_alloc_page_count) > 0 
ORDER BY (tsu.user_objects_alloc_page_count -
          tsu.user_objects_dealloc_page_count)
       + (tsu.internal_objects_alloc_page_count - 
          tsu.internal_objects_dealloc_page_count) DESC  
0
Subbu