問題タブ [ora-hash]

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.

0 投票する
1 に答える
3036 参照

sql - 衝突の少ない高速ハッシュ?

1 つの列 (NUMBER、VARCHAR、DATE、TIMESTAMP の可能性がありますが、CLOB はありません。 XML.etc)? 次に、この値を別のテーブルでの同じ操作と比較して、同じ列のすべての行がまったく同じかどうかを確認します。

0 投票する
2 に答える
10106 参照

oracle - ora_hashは決定論的ですか?

Oracleデータベースを使用していますが、データをテーブルに分割できる必要があります。Rracleには、データをバケットに分割できるora_hash関数があることを理解しています。ora_hash関数は決定論的ですか?

私のプログラムでは、いくつかの異なるデータベースクエリを作成し、各クエリで異なるバケット番号を要求します。

たとえば、1つのクエリで、最初の2つのバケットを要求する場合があります。

後続のクエリで、2番目と3番目のバケットを要求する場合があります。

上記の例では、ora_hashは常にテーブルをまったく同じ10個のバケットに分割しますか?テーブル内のデータは変更されていないと想定します。2番目のバケット(バケット1)は、両方のクエリで同一ですか?

シード値により、Oracleが同じデータセットに対して異なる結果を返すことができることを示唆するドキュメントがあります。したがって、シード値を使用しない場合、ora_hashは決定論的であると想定しています。ドキュメントを参照してください。

0 投票する
1 に答える
724 参照

oracle - ORA_HASH は結合/処理のパフォーマンスを向上させることができますか

11G データ ウェアハウスへの (比較的) 基本的なアクセス権を持っています。私が行う処理には、いくつかの計算を使用して大きなテーブルを大きなテーブルに結合したり、データの基本セットに追加の列を追加したりすることが含まれます。私は通常、計算のために自分のスキーマにデータを取り込みますが、ウェアハウスの処理能力は限られており、ほとんどの作業がテーブルのすべての行にデータを影響または結合することを伴うため、一部のクエリには長い時間がかかります (Explain Plan での多くのフル テーブル スキャン! )。

私の質問は、2 つのテーブルの主キーとして参照番号がある場合、この参照番号のハッシュ バージョンも使用すると、パフォーマンスが向上しますか?

そうでない場合、これらの状況でパフォーマンスを向上させる他の方法はありますか?

0 投票する
1 に答える
4603 参照

oracle - Oracle の ORA_HASH は「ランダム」ですか?

ora_hash は、入力とシードを一定に保つことで明確な出力が生成されるという点で決定論的です。

ただし、任意のシード (デフォルトを含む) の場合、ora_hash の出力には必ず次のプロパティが含まれます。

「ORA_HASH の結果がどうなるかを予測するために使用できる方法は存在せず、純粋にランダムな推測よりも高いレベルの成功を収めることができますか?」

0 投票する
1 に答える
1381 参照

oracle - ora_hash の実装方法 (任意の SQL データ型を n 個のバケットに分割するシード可能なハッシュ)

ハッシュ テーブルに関するウィキペディアの記事を見てきましたが、任意の SQL データ型のエントリを n 個のバケットに均等に分散できるハッシュ テーブルを実装する方法については何も述べていないようです。

このトピックに関するドキュメントまたは既存のソース コードの方向性を教えてくれる人はいますか?

0 投票する
0 に答える
278 参照

oracle - Oracle データベース、pl/sql コードの検証

特定の pl/sql オブジェクト (プロシージャなど) が開発環境、テスト環境、および本番環境の間で一致することを確認する必要がありました。コードが一致することを 100% 確実に比較して知るために、次のような単純な関数を作成しました。

それはうまくいきます。コードを 1 文字でも変更すると、別のハッシュ値 (チェックサムまたは任意の名前) が取得されます。Oracle ディクショナリ ビューを使用して、pl/sql コードだけでなく、参照/ルックアップ テーブル、テーブル構造、テーブル特権、インデックス、制約、シーケンスなどのデータも検証できます。上に貼り付けた関数は、ほんの一例です。

これが私の質問です.... Oracle データ ディクショナリには、各オブジェクトを表す一意の値を与える可能性のある、私が知らない何かが既に存在しますか? dba_objects に OBJ_CKSUM などの名前の列があれば最高です。オラクルがオブジェクトが変更されるたびにこれを内部的に保持できれば、私が書いたコードは完全に不要になります (数百行しかありませんが、維持するコードがないゼロ行の方がはるかに優れています)。そのような機能が存在しない場合、オラクルは将来のリリースでこれを追加することを検討する可能性がありますか? 非常に役立つと思いますが、他の開発者、テスター、またはリリース管理者が同意するかどうかはわかりません。オラクルに機能をリクエストする方法がわかりません。