SQL Server 2005の大規模データの処理



データベースの大規模なサイズが多いGBの何百ものであり、時には結核の計算を使用します。 1つのテーブルのデータは多くの場合、レコードの数百万に達し、数は時間の経過とともに成長するレコード。これは、データベースのメンテナンスデータベースの効率に影響を与えることも困難を向上させます。データの量に加えて、テーブル、テーブルの上に別のアクセスパターンでもパフォーマンスと可用性に影響を与える可能性があります。これらの問題は合理的な大きなテーブル領域にすることができます大幅に改善されます。データがに、より小さく管理の部分はシステムの効率を改善するために分けることができるテーブルとインデックスは非常に大きくなると、パーティション。複数のCPUまたは複数のディスクサブシステムしている場合は、並列処理でより良いパフォーマンスを得ることができます。したがって、大きなテーブルを大量のデータは非常に効率的な方法に対処するパーティションを作成する。本稿では、作成する方法と、パーティションテーブルを変更する方法、およびパーティションテーブルを表示するための具体的な例を示します。

1、SQL Server 2005の

SQL Server 2005はSQL Server 2000のMicrosoftの発表データベースプラットフォームの立ち上げ後、5年ぶりに、データと構造化データのための、そのリレーショナルデータベースエンジンは、より安全で信頼性の高いストレージ機能を提供するが、ユーザーが構築し、の管理が可能ビジネス、高い可用性とパフォーマンスデータアプリケーション。さらに、SQL Server 2005は、統合を報告、分析を組み合わせて、通知します。これは、企業の構築toとスコアカードを通じてチームを支援する費用対効果の高いのBIソリューションを展開することができます、ダッシュボード、Webサービスとbusinessのすべてareasするモバイルデータアプリケーション。両方の開発者、データベース管理者、情報労働者、または政策立案者は、SQL Server 2005は、革新的なソリューションを提供することができるデータの利点から詳細を得るために。

これは、T - SQLの拡張機能は、データパーティション、サービスエージェントとなどの新機能をもたらします。管理性、可用性、拡張性のフレームワークの統合ネット、セキュリティの強化、および他の側面。

2、表のパーティションの実現方法

表のパーティションは、水平パーティションおよび垂直方向のパーティションに分割。複数のテーブルに水平方向のパーティションテーブル。各テーブルには、より少ない行列の同じ番号が含まれます。たとえば、数十億行のテーブルが12テーブル、各小テーブルにパーティションのレベルを含む、と指定された1年以内に1ヶ月のデータ。すべての必要性がデータには、毎月テーブルの対応する月指定照会するだけ伝えた。テーブルのいくつかの小さな列に有効な垂直方向のパーティションの元のリストは含まれています。地区レベルのゾーニング最も一般的な地区の特定の実現のレベルにこれを提示することです。

水平パーティションは一般的にパーティションのレベルのデータ期間の使用に基づいているメソッドを使用します。たとえば、この例では、メッセージログを送信するだけ、定期的に、この四半期のデータを参照してデータの最新の年を含んでいます。この例では、各データの4分の1が含まれて4つの地域にデータを検討します。

2.1は、ファイルグループを作成する

パーティションテーブルの確立は、最初にファイルグループを作成し、複数のファイルグループを作成する主/ Oのバランス良い感じを得ることです。通常の状況下で、面積は同じ数の最高のグループのファイル数、およびこれらのグループは、通常、ディスク上の別のファイルに位置しています。各ファイルのグループは1つまたは複数のファイルで、各パーティションはファイルグループにマップする必要が形成できます。ファイルグループが複数のパーティションで使用することができます。ためにより良い(たとえば、データを管理するための)パーティションのテーブルの上に、より正確なバックアップ制御を入手するように設計する必要がありますので、そののみ関連データまたは同じファイルグループ内のデータの論理的なグループ。使用してALTER DATABASEを、論理ファイルグループ名を追加します:

のALTER DATABASE [のDeanDB]はファイルグループ追加します。[FG1]

DeanDBデータベース名、FG1ファイルグループの名前です。を作成するファイルグループ、ファイルグループにファイルを追加するALTER DATABASEを使用して:

のALTER DATABASE [は]ファイル(名前= N'FG1'を追加DeanDB、FILENAMEは= N'C:DeanDataFG1.ndf'、サイズ= 3072キロバイトは、FILEGROWTHの= 1024KB)のファイルグループへ[FG1]

4つの論文やドキュメントを別のディスクドライブ上の各ファイルのデータを格納するために同様のグループの設立。

2.2は、パーティション関数を作成する

作成パーティションテーブルのパーティション関数は、標準的なパーティションテーブルがパーティション関数によって決定されるメカニズムを決定する必要があります。作成は、データパーティション機能は、範囲は"左| /"の2つのオプションを右。それぞれの代表が地元の境界値の側の。たとえば、4つのパーティションには、次の3つの国境ポイントの値の定義あり、それぞれの値を指定境界線(左)の最初のパーティションまたは下の境界(右の第二パーティション)です。コード:

パーティションの作成機能[SendSMSPF](日時)で値をレンジの権利として('20070401'、'20070701'、'20071001')

2.3は、パーティションを作成する

作成パーティション関数は、それがパーティション構成文書を特定のグループを指しているパーティションに関連付けする必要があります。データメディア、データブロック間の対応の実際のストレージを定義することです。複数のデータテーブルには、一般的に同じデータのパーティション分割スキームを共有しない、同じデータパーティション関数を共有することができます。異なるパーティション分割方式では、同じパーティション関数を、別のデータテーブルを使用して、同じ地理的条件があるが、さまざまなメディアで保存されます。次のように作成するパーティションのプログラムコードは:

パーティションの作成方式[は、パーティション[するには]([FG1]、SendSMSPFのAS] SendSMSPS [FG2]、[FG3]、[FG4])

2.4は、パーティションテーブルを作成する

良いパーティション関数とパーティションの確立は、パーティションテーブルを作成することができます。パーティションテーブルのパーティションキーとパーティション関連付けられたプログラムを定義すること。別のパーティションに基づいてレコードを挿入、SQL Serverのキーは、パーティション関数は、適切なパーティションにデータが定義されます。したがって、パーティション関数は、3つの組み合わせでパーティションおよびパーティションテーブル。次のようにコードがパーティションテーブルを作成することです:

のCREATE TABLE SendSMSLogは([番号] [int型]のIDENTITY(1,1)NOT NULLと、[IDNUM =パラメータ] [nvarchar型](50)はNULL、[SendContent] [テキスト]がNULL [SendDate] [datetime型のNOT NULL)SendSMSPSオンです(] SendDate)

2.5は、パーティションテーブルの情報を表示する

システムは、いくつかの時間またはパーティションのテーブルに以前のデータの実行、我々は、つまり、各districtレコード数は、areaでthoseレコードは、アクセスなどをアクセスするがdata specificストレージconditionsを見る必要。次のように$ Partition.SendSMSPF我々ができるかは、コードは:

セレクト$ partition.SendSMSPF(o.SendDate)[パーティション番号]、分(o.SendDateのAS)[ミンSendDate]、最大(o.SendDate AS)の[最大SendDate]、カウント(*)としてパーティションで[行として]からのoGROUPによるドルpartition.SendSMSPF(o.SendDate dbo.SendSMSLog)ORDER BY句[パーティション番号]

クエリアナライザは、結果を図1に示すように上記のスクリプトの実装では:






図1:パーティションテーブルの情報

2.6メンテナンス事業部

パーティションは、メインのデザインのパーティションのメンテナンスを減らすために、マージ変換パーティションを追加します。でに対するALTER PARTITIONをFUNCTIONをオプションスプリット、マージ、およびALTER TABLEスイッチオプション達成するために。スプリットは、1つのゾーン以上増加するが、MEGREを組み合わせるか、またはパーティションを減らすために、スイッチはグループ内の論理パーティション間の変換です。

3、パフォーマンスの比較

に我々のデータは26.5万人、約4Gのメモリ空間は、単一のテーブルのテスト環境IBM365、CPUのXeonプロセッサ2.7G * 2、メモリ、16Gとの性能を比較することによって占領136G * 2 HDDを、システムのプラットフォームのWindows 2003 SP1の+ SQL Server 2005のSP1の。表1の結果:

表1:性能比較パーティションのではなく、パーティションテーブル(単位:ミリ秒)

試験項目パーティションがパーティションされていません

11654661466

21333

32014061546

41714061000

概要:

1時間に応じて、1日の記録時間が取得過ごした

2、滞在時間に1つのレコード

3時間1日の時間を記録削除するには撮影に応じて

4、統計時間1ヶ月あたりのレコード数を

パーティションのテーブルのCPUおよびIを使用しての操作/ Oは、並列動作、データの量データを取得するも、場所も小さいため、表1から、よりパーティションテーブルのパーティションテーブルでは高速で動作する、見られるように短い時間のかかるデータ。

4結論

大量のデータ処理の頭痛をされている。分離技術は、すべてのデザイナーの最初の考慮事項、合理的な計画とするかどうか、それは、アプリケーションの機能または別のデータアクセスの分離、、非常に効果的なソリューション大規模なデータのテーブルと高コスト、低効率の問題の保守を実行することが現れる。 SQL Server 2005の新機能パーティションテーブルは、データが、一部のデータは、SQL Serverエンジンへのユーザーアクセスは、haystackの中で針ではないプログラムの最適な実装を見つけるためにデータの物理的なストレージを最適化することができます適切なパーティションを作成することができます。