2017-06-03 14 views
-1

私は単純なクエリ(単純な選択)のプロジェクトに取り組んでいます。そのために、多くの論理があり、私はクエリ(#)内に多くの一時テーブルを作成しました。テンポラリテーブルとトランザクションログのクエリが増えていますか?

私たちのデータベースは先週から問題に直面していましたが、トランザクションファイルのサイズが大きくなり、DBAがファイルを縮小しましたが、今日私のクエリを実行すると再度クエリを実行できませんでした。

私はトランザクションログのサイズを確認しましたが、何もせずに再成長しています。私は私の質問に多くの一時的なテーブル(#)があるのでそれがあるかどうか知りたいですか? DBAはそれを維持すべきですか?

+0

かもしれない理由のいずれかに起因する可能性がそれに対してtlogsを維持する方法に焦点を当てています。そうしないと問題は解決しません。 – scsimon

+0

一時的なテーブルをたくさん作成するとトランザクションログのサイズに影響すると思いますか? > –

+0

クエリを参照する必要があります。 – scsimon

答えて

0

一時表は、あなたがここにtempdbの

のためのより多くのセッションの割り当てにアダムMachanicからsp_whoisactiveを使用することができます

..あなたのログの成長が唯一のTEMPDBになりますので、TEMPDBにそれに活動をログに記録しますありがとうございクエリです私のシステム

enter image description here

からの出力は、これは、通常のデータベースであれば、あなたはより多くのログの増加を引き起こしていることができるかのセッションを知りたい場合は、このクエリを使用することができます

select DB_NAME(tr.database_id) as dbname, 
     (database_transaction_log_bytes_used+ database_transaction_log_bytes_reserved)*1.0/1024 as 'Tlog_used_KB', 
     ec.session_id, 
     txt.text 

     from sys.dm_tran_database_transactions tr 
     join 
     sys.dm_exec_requests ec 
     on ec.transaction_id=tr.transaction_id 
     cross apply 
     sys.dm_exec_sql_text(Ec.sql_handle) txt 

おそらく、あなたはあなたのクエリをより効率的にする方法を調査する必要があります。通常TLOGスペースが再利用されますが、あなたが起こっていることをseeeingされていない場合、それはlisted here

+0

ありがとうございました。実際には、私のクエリに使用しない他のデータベースが増えているわけではありません。データベースから何も照会しなくても、他のデータベースがどのように成長するのか知っていますか? –

+0

ありがとうございます。実際には、それは増加するtemporarydbのトランザクションログではありませんが、私はデータベースに変更を加えないので、私が理解していない通常のデータベースのトランザクションログだけです、私はいくつかのフィールドを取得するために、 。あなたはなぜ私のクエリを停止したにもかかわらず、通常のデータベースのトランザクションログがまだ成長している理由を知っていますか? –

関連する問題