Oracle から SQL Server 2008 への移行プロジェクトに取り組んでいます。そのため、他のストアドプロシージャを呼び出すために使用される多くのオラクルパッケージ関数があります。これらの関数は、SSMA によって関数から拡張プロシージャを介して実行される IMPL プロシージャに変換されています。そのような関数のほとんどを可能な限り単純な UDF に変換しました。現在、私たちは独特のパフォーマンスの問題に直面しています。このような関数を IMPL プロシージャ コールで呼び出すクエリは、実行に時間がかかります。興味深いのは、Sql Server 2008 の古いサーバーで 2 分で同じクエリを実行していたことです。現在、SQL Server 2008 R2 を搭載した新しいサーバーでは、非常に長い時間がかかります (約 25 ~ 30 分)。
インデックスと統計も最新であることを確認しました。また、IMPL 呼び出しが master および sysdb データベースを通過し、内部テーブルを使用して IMPL プロシージャー呼び出しからの結果を保存し、関数に返すことにも気付きました。それらのスペース割り当ては、古いサーバーとは異なります。しかし、スペースが不足しているわけではありません。それらが問題を引き起こしている可能性はありますか? master/sysdb データベースの領域割り当てに関するガイドラインはありますか?
データベースは約 300 GB で、tempdb は約 50 GB です。
古いサーバー
- SQL Server 2008/Windows
- Xenon クアッドコア x4 - 3GHz、64GB RAM
新しいサーバー
- SQL Server 2008 R2 RTM
- Opteron 6 コア x6 - 2.2GHz、64GB RAM
さらに詳細が必要な場合はお知らせください。
ありがとう