Windows NT で SQL Server のパフォーマンスの強化

文書翻訳 文書翻訳
文書番号: 160606 - 対象製品
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
すべて展開する | すべて折りたたむ

目次

概要

Windows NT で実行時に SQL Server のパフォーマンスの拡張機能として新しいインターフェイスが追加します。 この拡張機能は、スキャッター/ギャザー I/O 機能をします。

詳細

散布図を選択するには/収集とは

スキャッター/ギャザは I/O 状況によってはパフォーマンスの高い使用される、標準的な技法です。 通常、ダイレクト メモリ アクセス (DMA) 転送を指します。 指定されたデータ ブロックとして複数の独立したバッファー メモリ内に存在可能性があります。 スキャッター/ギャザ、なしを設定、メモリからディスクへ転送するときに、オペレーティング システムは多くの場合、転送を各バッファーにかブロックに移動を 1 つの大きいバッファー、転送を開始する前にします。 これらは非効率的です。 オペレーティング システムとドライバー/ハードウェア メモリ内の個別の場所からデータを収集および"場所"に 1 回の操作として転送する場合よりです。 同様に、ディスクからの入力に場合に直接データ ブロックが分散しているメモリ中間ブロックせずに必要な場所に移動でき、それを基が高速。

インターフェイスの仕様

ReadFileScatter

ReadFileScatter 関数は、ファイル オフセット OVERLAPPED 構造内で指定された位置から始まる、ファイルからデータを読み取ります、複数のユーザー バッファーにデータを配布します。
BOOL ReadFileScatter(
<WWBLOCKQUOTE>
    HANDLE hFile,                         // handle of file to read
    FILE_SEGMENT_ELEMENT aSegmentArray[], // array of buffer segments that
receives data
    DWORD nNumberOfBytesToRead,           // number of bytes to read
    LPDWORD lpReserved,                   // reserved must be NULL
    LPOVERLAPPED lpOverlapped             // address of structure for data
   );
				

パラメーター

hFile


読み取るファイルを識別します。 ファイル ハンドルは、ファイルへの GENERIC_READ アクセス作成されてがする必要があります。

FILE_FLAG_OVERLAPPED を使用して非同期の I/O、および FILE_FLAG_NO_BUFFERING を非キャッシュ I/O の指定を指定するファイルが開くされる必要があります。

aSegmentArray

セグメントのポインターの配列を指します。 セグメントは、転送されたデータの一部を配置するメモリ バッファーです。 セグメントは、システム ページ サイズし、ページ サイズの境界に配置する必要があります。

メモリ セグメントこと VirtualAllocVlm を使用して割り当てることができますも標準の 32 ビット アドレスのメモリがどちらかにできます。

NNumberOfBytesToRead

ファイルから読み取るバイト数を指定します。

lpReserved

予約は NULL してください。

lpOverlapped

OVERLAPPED 構造体へのポインター。 この構造体は必須あり、有効な OVERLAPPED 構造体に指す必要があります。

OVERLAPPED 構造体で指定したオフセットで読み取り操作を開始し、読み取り操作が完了するまでに ReadFileScatter が返します。 ここでは、ReadFileScatter は FALSE を返しますして GetLastError 関数 ERROR_IO_PENDING を返します。 これにより、呼び出しプロセス読み取り操作の完了中に続けます。 アプリケーションはか GetOverlappedResult と HasOverlappedIoCompleted を使用して I/O 完了通知、または GetQueuedCompletionStatus I/O 完了までに取得することができます。

戻り値

関数が成功すると、戻り値は 0 以外の値です。 失敗すると、戻り値はゼロです。 拡張エラー情報を入手するには GetLastError を呼び出します。 ReadFileScatter が、ファイルの終わりを超えて読み取る読み取ろうとした場合、関数は、0 を返します、GetLastError ERROR_HANDLE_EOF を返します

注釈

各 FILE_SEGMENT_ELEMENT は、64 ビット長です。 すべての 64 ビットは、バッファーのポインターを計算する使用され、したがって、アプリケーション 64 ビット ポインターをサポートしていないシステム上の要素の上位 32 ビットを明示的にゼロする必要があります。

WriteFileGather

WriteFileGather 関数は、複数のバッファーからデータを収集し、ファイルにデータを書き込みます。 関数は、非同期操作向けです。 関数は OVERLAPPED 構造体で指定された位置にあるファイルへのデータの書き込み開始します。
BOOL WriteFileGather(
    HANDLE hFile,                // handle to file to write to
    FILE_SEGMENT_ELEMENT aSegmentArray [], // array of buffer segments
containing the data
    DWORD nNumberOfBytesToWrite,    // number of bytes to write
    LPDWORD lpReserved,             // Reserved must be NULL
    LPOVERLAPPED lpOverlapped       // pointer to structure needed for
overlapped I/O
   );
				

パラメーター

hFile


ファイルに書き込まれるように識別します。 ファイル ハンドルは、ファイルへの GENERIC_WRITE アクセス作成されてがする必要があります。 FILE_FLAG_OVERLAPPED を使用して非同期の I/O、および FILE_FLAG_NO_BUFFERING を非キャッシュ I/O の指定を指定するファイルが開くされる必要があります。

aSegmentArray

セグメントのポインターの配列を指します。 セグメントは、転送されたデータの一部を配置するメモリ バッファーです。 セグメントは、システム ページ サイズし、ページ サイズの境界に配置する必要があります。 メモリ セグメントこと VirtualAllocVlm を使用して割り当てることができますも標準の 32 ビット アドレスのメモリがどちらかにできます。

NNumberOfBytesToWrite

ファイルに書き込むバイト数を指定します。

MS-DOS オペレーティング システムとは異なり Windows NT は、値 0、NULL の書き込み操作を指定すると解釈します。 NULL の書き込み操作は任意のバイトは書き込まれませんが、原因、タイムスタンプを変更するには。

lpReserved

予約は NULL してください。

LpOverlapped

OVERLAPPED 構造体へのポインター。 この構造体は必須あり、有効な OVERLAPPED 構造体に指す必要があります。 OVERLAPPED 構造体で指定したオフセットで書き込み操作を開始し、書き込み操作が完了するまでに WriteFileGather が返します。 ここでは、WriteFileGather は FALSE を返しますして GetLastError 関数 ERROR_IO_PENDING を返します。 これにより、呼び出しプロセスを書き込み操作が完了されるときに処理を続行できます。 アプリケーションでか GetOverlappedResult/HasOverlappedIoCompleted を使用して I/O を拾うをできる完了の通知、または GetQueuedCompletionStatus I/O を完了します。

戻り値

関数が成功すると、戻り値は 0 以外の値です。 失敗すると、戻り値はゼロです。 拡張エラー情報を入手するには GetLastError を呼び出します。

注釈

各 FILE_SEGMENT_ELEMENT は、64 ビット長です。 すべての 64 ビットは、バッファーのポインターを計算する使用され、したがって、アプリケーション 64 ビット ポインターをサポートしていないシステム上の要素の上位 32 ビットを明示的にゼロする必要があります。

別のプロセスによってファイルの一部がロックされているし、書き込み操作にロックされている部分が重なっている、この関数失敗します。

MS-DOS オペレーティング システムとは異なり Windows NT は 0、NULL の書き込み操作を指定するとして書き込むバイトを解釈し、WriteFileGather は切り捨て、またはファイルを拡張できません。 切り捨てまたはファイルの拡張するには、SetEndOfFile 関数を使用します。

状況

Windows NT 4. 0 Service Pack 2 で、Windows NT で実行時に SQL Server のパフォーマンス enhancer として機能する新しいインターフェイスを導入されました。 この拡張はスキャッター/ギャザ入出力機能します。

Windows NT 4. 0 Service Pack を取得する方法の追加についてはをクリック資料以下、「サポート技術情報」(Microsoft Knowledge Base) を表示します。
152734Q152734 How to Obtain the Latest Windows NT 4.0 Service Pack

プロパティ

文書番号: 160606 - 最終更新日: 2014年1月31日 - リビジョン: 1.1
この資料は以下の製品について記述したものです。
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
キーワード:?
kbnosurvey kbarchive kbnetwork kbmt KB160606 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:160606
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com