問題タブ [database-partitioning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - Sql Server 2005 - パーティション分割されていないテーブルにパーティション スキームを追加する
5,000 万を超えるレコードがあり、パーティションを持たないテーブルがあります。しかし今、このテーブルにパーティション スキームを追加したいと考えています。このテーブルには主キーがあります。しかし、別の int 列を使用して分割したいと考えています。どうすればできますか?
oracle - PARTITION BY 1 とはどういう意味ですか?
最初のFETCHの直後に結果セット内の行の総数が必要なカーソルのペアの場合(試行錯誤の後)、以下のクエリを思いつきました
クエリの出力が X 行の場合、rows_in_result はこれを正確に反映します。
- PARTITION BY 1 とはどういう意味ですか?
- おそらくデータベースに、結果をそれぞれ1行ずつに分割するように指示していると思います
mysql - データベース パーティションからシャーディングに進化してスケールアウトする方法は?
MySQL テーブルがあるとします。
すべてが良いです。テーブルは、単一のサーバー (Server1) 上にあります。しかし、最終的にはスケールアウトしたいと思うかもしれません。そこで、テーブルを分割して、12 個のパーティションのうち 6 個を新しいサーバー (Server2) に移動したいと考えています。
私が欲しい:
- 奇数番号のツイートを含む Server1: パーティション 1、3、5、7、9、11
- Server2 に偶数番号のツイートを含める: パーティション 2、4、6、8、10、0
1) これらのパーティションを Server1 から Server2 に移動する最善の方法は何ですか? 自動インクリメントの tweet_id の値が移行中に変更されないことを確認する必要があります。
2) 2 つのサーバーができたので、2 つのサーバーによって生成された自動インクリメントの tweet_id が同じ値でないことを確認するにはどうすればよいですか? また、各パーティションの tweet_id が一貫していることを確認する必要もあります。つまり、パーティション k では、すべての tweet_id の modulo 12 が k に等しくなります。
3) 理想的には、このスケールアウト プロセスを継続したいと考えています。そのため、後で 3 番目のサーバー (Server3) を追加したいと思います。各サーバーに 4 つのパーティションがあるように、パーティションのバランスを取り直したいと思います。繰り返しますが、3 つのサーバーによって生成された自動インクリメントの tweet_id が明確であり、12 を法とする tweet_id が各パーティション内で一貫していることを確認するにはどうすればよいですか?
mysql - char列に基づいてMySQLテーブルを分割する方法は?
char 列に基づいてパーティション分割することは可能ですか?
MySQL 5.1 のドキュメントを確認したところ、整数型のみを使用できるようです。
これは正しいです?または、関数を使用して char を整数に変換できますか?
問題の char フィールドには一意の識別子が含まれています。
postgresql - PostgreSQL+テーブルのパーティショニング: 非効率な max() と min()
PostgreSQL テーブルに巨大なパーティション テーブルが格納されています。各子テーブルには、インデックスとその ID に対するチェック制約があります。たとえば、(わかりやすくするために無関係な詳細は削除されています)。
今、
インスタントですが、次のとおりです。
これはマスター テーブルでpoints_01 .. points_60
あり、チェック制約を使用するとほとんど時間がかからないはずですが、クエリ プランナーがチェック制約を使用しないため、1 時間以上かかります。
PostgreSQL wiki (このページの最後のセクション) によると、これは既知の問題であり、次のバージョンで修正される予定です。
max()
クエリ プランナーがチェック制約とクエリのサブテーブルのインデックスを利用するようにする良いハックはありますmin()
か?
ありがとう、
アダム
sql-server - *IF* および *WHAT* パーティションがアクセスされていることを確認するにはどうすればよいですか - SQL Server 2008 db engine
設定
- 並列処理のしきい値のコスト: 5
- 最大並列度 : 4
- プロセッサー数 : 8
- SQL Server 2008 10.0.2.2757
- 多くの結合、多くのレコードを含むクエリがあります。
- デザインは星です。(参照テーブルへの fks を持つ中央テーブル)
- 中央のテーブルは、関連する日付列で分割されています。
- パーティション スキーマは日ごとに分割されます
- パーティション スキーマに割り当てられたファイル グループ内のファイルのサイズを比較して判断すると、データはパーティション スキーマ全体で非常によく分割されています。
- 関連するクエリには、パーティション化された列に設定された述語があります。( cs.dte >= @min_date および cs.dte < @max_date ) など
- 日付パラメーターの値は 1 日離れて @ 真夜中なので、2010-02-01、2010-02-02
- 推定されたクエリ プランは並列処理を示していません
a) この質問は、Sql Server 2008 データベース エンジンに関するものです。OLTP エンジンでクエリが実行されているとき、Progress End イベントを使用して SSAS クエリをプロファイリングするときに得られるような洞察を確認したいと考えています。
b) 推定されたクエリ プランまたは実際のクエリ プランが並列処理を示さない場合、それはすべてのパーティションがチェックされた/読み込まれたことを意味しますか? * 私がここで言おうとしていたのは - ただ b/c クエリ プランに並列性が見られないということです。それは、クエリが複数のパーティションにヒットしないことを保証するものではありません。または - 並列処理とアクセスされるパーティション数の間に確固たる関係はありますか?
c) 提案?他に提供する必要がある情報はありますか?
d) 実際のクエリ プランを見ずに、クエリが並列処理されているかどうかを確認するにはどうすればよいですか? * どのパーティションが使用されているかを特定するのに役立つ場合にのみ、これに興味があります。
11月10日追加
これを試して:
- 1、3、およびすべてのパーティションにヒットするクエリを作成します
- SSMS クエリ ウィンドウを開き、実行します。
SET SHOWPLAN_XML ON
- そのウィンドウで各クエリを 1 つずつ実行します
- 実行ごとに XML のチャンクが追い出されます
- これらの XML 結果を比較します (私はテキスト差分ツール「CompareIt」を使用していますが、同様のツールで十分です)。
実行計画が大幅に異なることがわかります。「3」および「すべて」のクエリには、「ConstantScan」とタグ付けされたテキストのチャンクがあり、テーブルには (それぞれ) 3 およびすべてのパーティションのエントリがあり、そのセクションは「1 パーティション」クエリには存在しません。 . 私はこれを使用して、確かにそうであると推測します.SQLは、それが行うと言うことを実行します.つまり、クエリを解決するために必要であると信じているだけのテーブルのみを読み取ります.
mysql - このテーブルに mysql パーティションを適用できますか?
私はこのテーブルを持っています
パーティションを適用するにはどうすればよいですか?また、使用できる最適なタイプのパーティションは何ですか?
クエリは
SELECT id,user_id,message FROM posts WHERE thread_id = %
いくつかの結合で
PS: テーブルは 2.5 GiB です
- MySQLパーティションについてあまり知りません:(
ありがとうございました
mysql - MySQLDatadirを別のパーティションに移動したい
すべてのmysqlデータベースを別のパーティションに移動したいと思います。そこにあるブラジルのガイドを試しましたが、機能するものは見つかりませんでした。
my.cnfの「datadir」を変更するたびにMySQLは機能しなくなります!
ここにいくつかのより多くの情報があります:
そして、これがconfファイルです:
nhibernate - NHibernate を使用して分割されたデータをマップする方法
アクティブなレコードが 1 つのテーブルに格納され、時間の経過とともに古いレコードがアーカイブされるシナリオがあります。アクティブとアーカイブの 2 つのテーブルのテーブル構造はまったく同じです。
例 DomainObject_Current : ID INT : Autoincrement Key Value INT TimeStamp
DomainObject_Archive ID INT 値 INT タイムスタンプ
週単位で、30 日以上経過したレコードを Current テーブルからアーカイブ テーブルに移動します。ID (主キー) は、2 つのテーブル間で一意です。
アプリケーションは、データが現在のテーブルとアーカイブ テーブルのどちらから受信されているかを認識できない必要があります。このシナリオで DomainObject クラスをマップする最良の方法は何ですか?
sql - SQL で複数のパーティションを選択するにはどうすればよいですか?
以下よりも効率的な方法はありますか?