私は4台の同じサーバー2を使用していますが、2台は本番環境で使用され、他の2台はデモマシン/緊急フェイルオーバーボックスです。より強力なマシンである16コアの127 GBのRAMは、DatawarehouseとOLTPデータベースの両方をホストします。それほど強力ではないボックスは、ETLとデータストアに使用する8コアの98 GBのRAMボックスです。 。私が抱えている問題は、運用サーバー統合サービスでパッケージ検証を実行するのに長い時間がかかります。6秒で返されるクエリの場合、パッケージ検証が完了するまでに40秒かかります。ご覧のように、これはかなり単純なパッケージです。
これは私が例として使用しているパッケージにすぎないことを覚えておいてください。私のパッケージのすべてに同じ問題があります。これを実行すると、検証部分に平均40秒かかります。
これをよりテストするために、このボックスと同じSQLジョブをすべて実行するまったく同じパッケージを姉妹ボックスで実行しました。実行前の検証に0秒かかり、クエリに4〜6秒かかるだけです。
これをさらにテストするために、SQLサーバーの両方のインスタンスに対してクエリを実行しました。
SELECT '{' + CAST(Store_Id AS CHAR(36)) + '}' AS Store_Id
,'{' + CAST(ItemGroupDetail_Id AS CHAR(36)) + '}' AS ItemGroupDetail_Id
,ItemGroupType_Id
,'{' + CAST(Concept_Id AS CHAR(36)) + '}' AS Concept_Id
,'{' + CAST(Company_Id AS CHAR(36)) + '}' AS Company_Id
,'{' + CAST(ItemGroup_Id AS CHAR(36)) + '}' AS ItemGroup_Id
,GroupName
,Sort
,NameOverride
,'{' + CAST(ParentGroup_Id AS CHAR(36)) + '}' AS ParentGroup_Id
,Active
,'{' + CAST(UserCreated AS CHAR(36)) + '}' AS UserCreated
,'{' + CAST(UserModified AS CHAR(36)) + '}' AS UserModified
FROM bos_vAllItemGroups
メインサーバーで最新の日付で実行すると、平均で5秒で63326行、3秒で50527行が返されます。これは、このサーバーが同じスペックではるかに少ない活動を期待することです私がそれがわずかに速いと期待するでしょう。私が期待しないのは、パッケージの検証時間が実際のクエリ実行時間よりもはるかに長くなることです。
昨日何度も掘り下げた後、問題を発見したかもしれないと思いますが、それをどのように証明するかわかりません。制作OLTPデータベースは、新しいコンテンツをチェックするために絶えず家に電話している全国のデジタルメニューボードのコンテンツを管理します。ほとんどの場合、変更するものは何もありません。ミリ秒です。ただし、このプロセスに関する送信は、1秒あたり平均4500クエリで実行されます。これが私の問題の原因である可能性がありますか?Webサーバーから大量のトランザクションが送信されています。 OLTPデータベースはデータウェアハウスと同様に非常に急速に成長しており、私のすべての読書からOLAPおよびOLTP同じサーバー上のデータベースは悪い習慣と見なされます。
いくつかのオフラインの会話で、Zaneはifが接続を開いたままにできることを確認でき、検証を早めます。
そのために、接続マネージャーのプロパティを変更して、RetainSameConnectionプロパティをデフォルトからTrue
に変更することを提案しました。
マージ結合とソートは非常に遅いです。 OLE Dbソースの代わりに結合を持つクエリを作成することは可能ですか?