一部のデータを保持して処理する必要があるストアド プロシージャがあります。この目的のために一時テーブル (#temp) を使用しています。現在、一時テーブルは tempDb に格納されているため、データベース間通信が発生するため、通常のテーブルを作成した方がよいでしょうか? #temp テーブルのその他の利点はありますか?
1 に答える
一時テーブルとの通信は技術的には「データベース間」通信ですが、tempdb は通常高度にキャッシュされている (またはそのように構成できる) ため、メモリからの読み取りである可能性が高く、ディスクからの読み取りです。
デフォルトでは、一時テーブルはそれを作成したプロセスのみがアクセスできるため、権限のないユーザーによるデータの読み取りから保護されます。テーブルのクリーンアップも自動的に管理されます。また、作業データベースでのリソースの競合を減らすのにも役立ちます。
実用的な観点からは、#temp テーブルよりも優れたパフォーマンスを提供するように通常のデータベースを微調整できますが、ほとんどの目的では、#temp テーブルの方がより実用的なソリューションになります。
Tempdb の概要: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc31654.1550/html/sag1/X73131.htm
Tempdb のパフォーマンスとチューニング: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00841.1502/html/phys_tune/X94507.htm