1

サーバーを起動する前にpartitionN.ndfを置き換えるだけで、あるテーブルパーティションを別のテーブルパーティションに交換できるようにしたいと思います。

一般的な目的は、テーブル行のいくつかのセットを異なるファイルに分割して、アプリのインストール時に1つのセットのみに対応できるようにすることです。常に必要な行がいくつかあるので、

シナリオA

IDゲーム戦略
1スカッシュスティックをTに
2ラケットボール後ろに落とす
3テニスサーブバックハンド
1000クロケット鍵は本当に意地悪であることです
1001ビリヤードグレアたくさん

シナリオB

IDゲーム戦略
1スカッシュスティックをTに
2ラケットボール後ろに落とす
3テニスサーブバックハンド
1000野球の好意3番目
1002プールスヌーカー、イライラする

ここでは、IDを1000から分割し、共通データベースに低い数を保持します。シナリオ固有のパーティション内の共通データベース内のテーブルとの参照整合性を維持するために必要なIDが多数あります。

それはうまくいくでしょうか?または、サーバーの実行中にサーバーを置き換えるために、サーバーにパーティション化コマンドを発行する必要がありますか?質問の一部は、サーバーが起動してファイルを読み取るだけなのか、それとも置換の影響を受けやすいキャッシュやその他のものを維持しているのかということだと思います。

4

1 に答える 1

1

まったくうまくいかないと思います。ファイルは単一のテーブル(gam、sgam、pfs、ファイルヘッダーページ)よりもはるかに複雑な構造であり、パーティション化されたテーブルにはテーブル内のパーティションごとにHoBT IDがあり、新しいファイルには同じHoBTIDがありません。 IAMなど。

編集 :

あなたの例は、パーティショニングが解決するように設計されている問題ではありません。基本的に、固定された行の特定の部分と、インストール基準に基づいて可変の行の数をテーブルに事前入力しようとしています。

個人的には、このためにパーティション化されたテーブルをすぐに無視することをお勧めします。これはジョブに適したツールではありません。代わりに、値を2つの物理テーブルに分割し、2つのテーブルの上にビューを配置して、2つのテーブルを結合することを選択できます。一緒。

これは少なくとも、個々のパーティションではなく、テーブルを置き換えようとしているだけであることを意味しますが、それでもそのアプローチは好きではありません-インストール後にファイルグループ/ファイルを追加および削除するのに十分な特権がある場合は、適切なデータロードルーチンを使用し、必要に応じてデータをロードするだけです。

値の固定部分と可変部分を物理的に分離する必要がある場合は、必要に応じて、後でビューアプローチを使用できます。

于 2010-03-05T09:51:57.023 に答える