2017-02-14 7 views
-3

私は他のデータベースから選択することができますが、私はそれを理解すると同義語テーブルは、それが現在のデータベースから現在は別のデータベースを指していることを意味します。なぜ私はこの同義語の統計を分析できないのですか?技術的な説明や公式文書が必要ですなぜ私はStonesを分析できないsynonmテーブル?

+0

あなたは(同義語自体の統計情報を収集しようとしていますSSL、パスワード、 またはNTネイティブ認証によって使用共有サーバー接続

が認証なしで現在のユーザーのリンクを使用することを加入実行それはあまり意味をなさないでしょう)、またはそれが指すテーブルに。実際には同じデータベース(ただし別のスキーマ)または別のデータベース(データベースリンク経由)にありますか?あなたが試した陳述とあなたが得たエラーを含めて、参考になるかもしれません。 (これはとにかく説明されているかもしれませんが、まだそれを絞り込むのが良いでしょう) –

+0

@AlexPoole devは同義語テーブルでAnalyzeステートメントを実行していました(このテーブルは同じサーバー上の別のデータベース)エラーはofcourseテーブルは存在しませんでした。私は技術的な方法で彼の行動が間違っている理由を理解できるように説明しようとしていました。 anywyaあなたが回答を指摘したように良いです – Moudiz

答えて

0

あなたは明確に前提条件は任意のオブジェクトを分析するように、そのspefices Oracle Docを見ている必要があります。

を分析するためのスキーマ・オブジェクトは、ローカルでなければならず、それはあなたの 自身のスキーマまたはあなたでなければなりませんがANALYZE ANYシステム権限が必要です。

また、あなたは、これらを読まなければならない:テーブルの分析に

制限事項は次の制限事項があります。

あなたは、データ・ディクショナリ表の統計を収集するためにANALYZE使用することはできません•。

•ANALYZEを使用して、外部表の統計を収集することはできません。代わりに、DBMS_STATSパッケージを使用する必要があります。

•一時表のデフォルト統計を収集するためにANALYZEを使用することはできません。ただし、一時表の1つ以上の列とユーザー定義の統計タイプとの間に関連付けをすでに作成している場合は、ANALYZEを使用して一時表のユーザー定義統計を収集できます。

•REF列の型、VARRAY、ネストした表、LOB列の型(LOB列の型は分析されず、スキップされます)、LONG列型、またはオブジェクト型の統計は、計算または推定できません。ただし、統計タイプがそのような列に関連付けられている場合、Oracle Databaseはユーザー定義の統計を収集します。

+1

統計の収集にはANALYZEを使用しないでください。 – BobC

+0

DBMS_STATS()を使用する必要があります。まずは、ANALYZEを使用するかどうかにかかわらず、私は答えませんでした。私はちょうどOPが失敗を見つけることができる状況の下で言及した。 'DBMS_STATS'のすべてが有用であるとは限りません。その文書を読んでください。コストベースのオプティマイザに関係のない統計収集には、ANALYZE文(DBMS_STATSではなく)を使用する必要があります。また、 'Analyze'が削除された場合は見つかりませんでした。したがって、統計情報を収集するためにANALYZEを使用すべきではないという文を理解できませんでした。 – XING

+0

統計の収集には、DBMS_STATS()を使用する必要があります。 ANALYZEは、連鎖行、フリーリストブロックなどの構造を検証しています。 – BobC

0

ができないすべてのものを列挙した文書を見つけることはできません。 DBMS_STATS.GATHER_TABLE_STATS()のドキュメントは、スキーマ名とテーブルを指定する点ではっきりしています。 しかし、これがなぜ許可されないのかという技術的な理由が見つかるかどうかがわかります。

+0

これは、答えではなく、それはコメントでなければならないntです。 – XING

0

私たちは同義語を介して統計情報の収集を許可しないという技術的理由はありません。私たちは(それが指定されているので)オブジェクトがテーブルであると仮定します。

0

私が正しく理解している場合、「同義語」はデータベースリンクを介してアクセスする別のデータベースのテーブルを指しています。その場合、データベースリンクを介してリモートオブジェクトを分析することはできません(少なくとも11gではない)。

From the horses mouth

あなたは、データベース・リンクを使用して、次の操作を実行することはできません。リモートオブジェクトに

付与権限を

一部のリモートオブジェクトに対する操作をDESCRIBE実行します。 リモートオブジェクト以下、しかし、サポートを行う操作を説明します

テーブルビュー手順は

グラントの役割への参照整合性を定義するか、強制

リモートオブジェクトを分析

をに関する機能リモートデータベース内のユーザー

リモート・データベース上の非デフォルト・ロールを取得します。たとえば、jane がローカルデータベースに接続し、 がscottとして接続する固定ユーザーリンクを使用するストアドプロシージャを実行する場合、janeはscottの デフォルトロールをリモートデータベースで受け取ります。 JaneはSET ROLEを に発行することはできません。

ハッシュクエリが

+0

シノニムは、データベースリンクを介してリモートデータベース内の何かへの「ポインタ」であるとは限りません。あなた自身のスキーマやローカルデータベース内の別のスキーマのテーブルの同義語を作成することができます – BobC

+1

@BobCこんにちはボブ、私は、OPsステートメント "同義語テーブルは別のデータベースを指していることを意味する"という仮定に基づいていました。私はまた、英語がポスターの第一言語ではないと推測しているので、私はその投稿からできることを推測しようとしています。 – tbone

関連する問題