2011-06-28 1 views
0

SQL ServerからサードパーティのERPシステムへのエクスポート手順を準備しました。データベーススキームからほぼすべてのテーブルをスキャンし、すべての製品に対してXMLを作成します。輸出は十分に長く、クライアントの希望はより速くなります。私は輸出手続きが1CPUしか利用しないことに気づいた。SQL Serverのマルチプロセッサ使用

異なるパラメータ(製品の異なる範囲)で同じ手順を何度か実行すると、すべてのプロセッサを利用できるようになり、高速化できると思います。

質問私はSQL Serverツールを使用していることを行うことができますどのように

  1. 。 解決策の1つがSSISを使用しています。他の?

  2. プロセッサの数はさまざまです。 sys.dm_os_sys_infoを使用してプロセッサ数を取得できます。どのように動的に数回プロセッサの数量に依存して起動する?

+0

このサーバーを同時に使用しているものは何ですか?もしそうなら、あなたは他のプロセッサーを縛りたくないかもしれません。 –

+0

このエクスポートは、本番サーバーではなく、各クライアントデータベースごとに1回のみローカルで実行されます。しかし、多くのデータベースがあります。 – Dalex

答えて

0

心に留めて物事のカップル:

は - あなたはCPUバインドされ、IOバインドされていませんか?私の経験では、CPUをプロセスのボトルネックにすることは非常にまれで、ディスクアクセスの速度制限がはるかに高い可能性があります。ハードドライブが追いつくことができないため、プロセス全体を再構成しないで2%の速度向上が得られるように、追加のテストを行う必要があります。

- サーバー側の並列処理の設定を確認するだけでも簡単です。 DBAは、不適切なクエリプランの問題を緩和できるため、これを1に設定することがありますが、通常は限られたメリットがあります。

- OPTION (MAXDOP #)を使用してクエリの最大並列度を設定できます。#は、許可する並列プロセスの数です。

+0

1. CPUは常に100%ですが、HDは1秒あたり約30Kしか書き込みません。つまり、すべてのベースがメモリ2にキャッシュされているからです。はい、parallelizm = 1です。3. MAXDOPはコア数、それを広げない、それはない? – Dalex

+0

@Dalex - perfカウンタがCPUが100%であることを示している場合、私は複数のバッチに分割することを望みますか?あなたがすでにCPUにバインドされている場合は、25%の速度で4つのジョブを実行するだけです... – JNK

+0

1コアはもちろん、100%CPUではありません。 – Dalex

関連する問題