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?
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