2017-02-14 5 views
-3

Okay, eine Synonym-Tabelle bedeutet, dass es auf eine andere Datenbank verweist, die jetzt aus der aktuellen Datenbank stammt, es ist nur ein Spiegel, selbst wenn es sensetive ist, wenn ich auswähle, kann ich aus der anderen Datenbank auswählen, verstehe ich das. aber warum ich Statistiken für dieses Synonym nicht analysieren kann. Ich brauche eine technische Erklärung oder ein offizielles DokumentWarum kann ich keine Statistik analysieren? Eine Synonm-Tabelle?

+0

Versuchen Sie Statistiken für das Synonym sammeln sich zur Mitbenutzung (was nicht viel Sinn machen würde) oder zu dem Tisch, auf den es zeigt; und ist das tatsächlich in derselben Datenbank (aber einem anderen Schema) oder einer anderen Datenbank (über eine Datenbankverbindung)? Es könnte auch hilfreich sein, wenn Sie die Anweisungen, die Sie versucht haben, einbeziehen und die Fehler, die Sie bekommen haben. (Ein paar der bereits geposteten Antworten erklären das wahrscheinlich, aber es wäre immer noch gut, es einzugrenzen?) –

+0

@AlexPoole Ein Dev wurde ausgeführt Analyze-Anweisung in einer Synonym-Tabelle (diese Tabelle verweist auf eine andere Datenbank auf demselben Server)) Der Fehler war natürlich Tabelle ist nicht vorhanden; Ich versuchte auf eine technische Art zu erklären, warum er falsch verstanden hat. Anywya, wie Sie die Antworten darauf hingewiesen haben, sind gut – Moudiz

Antwort

0

Sie einen Blick auf Oracle Doc haben müssen, die das deutlich spefices als Voraussetzungen jedes Objekt zu analysieren:

Das Objekt Schema analysiert werden muss lokal und es muss in Ihrem eigenen Schema oder Sie sein muss das ANALYZE ANY-Systemprivileg haben.

Auch müssen Sie diese lesen:

Einschränkungen für Tabellen Analyse unterliegt den folgenden Einschränkungen:

• Sie nicht Data Dictionary-Tabellen verwenden können, analysieren, um zu sammeln Statistiken über.

• Sie können mit ANALYZE keine Statistiken zu einer externen Tabelle erfassen. Stattdessen müssen Sie das DBMS_STATS-Paket verwenden.

• Sie können mit ANALYZE keine Standardstatistiken für eine temporäre Tabelle erfassen. Wenn Sie jedoch bereits eine Verknüpfung zwischen einer oder mehreren Spalten einer temporären Tabelle und einem benutzerdefinierten Statistiktyp erstellt haben, können Sie mithilfe von ANALYZE die benutzerdefinierten Statistiken für die temporäre Tabelle erfassen.

• Sie können Statistiken für die folgenden Spaltentypen nicht berechnen oder schätzen: REF-Spaltentypen, Varrays, geschachtelte Tabellen, LOB-Spaltentypen (LOB-Spaltentypen werden nicht analysiert, sie werden übersprungen), LONG-Spaltentypen oder Objekttypen. Wenn jedoch einer solchen Spalte ein Statistiktyp zugeordnet ist, sammelt Oracle Database benutzerdefinierte Statistiken.

+1

Sie sollten ANALYZE nicht verwenden, um Statistiken zu sammeln. Du solltest DBMS_STATS() verwenden – BobC

+0

Nun, zuerst habe ich nicht geantwortet, ob wir 'ANALYZE' verwenden sollen oder nicht. Ich habe gerade erwähnt, unter welchen Umständen OP Fehler finden kann. Auch nicht immer 'DBMS_STATS' sind nützlich. Bitte lesen Sie das Dokument. Es besagt, dass Sie die ANALYZE-Anweisung (statt DBMS_STATS) für die Statistikerfassung verwenden müssen, die nicht mit dem kostenbasierten Optimierer zusammenhängt. Auch konnte ich nicht finden, wenn 'Analyse' abgewertet wird. So konnte Ihre Aussage nicht verstehen 'Sie sollten ANALYZE nicht benutzen, um Statistiken überhaupt zu sammeln. ' – XING

+0

Für die Ansammlung der Statistiken sollten Sie DBMS_STATS() benutzen. ANALYZE validiert Struktur, wie verkettete Zeilen, Freelist-Blöcke usw. – BobC

0

Ich bezweifle, dass Sie ein Dokument finden, das alle Dinge auflistet, die Sie nicht tun können. Das Dokument für DBMS_STATS.GATHER_TABLE_STATS() ist ziemlich klar, indem Sie einen Schemanamen und eine Tabelle angeben. Ich sehe jedoch, ob ich einen technischen Grund finden kann, warum dies nicht erlaubt ist.

+0

Dies ist keine Antwort eher sollte es ein Kommentar sein. – XING

0

Es gibt keinen technischen Grund, warum wir die Erfassung von Statistiken nicht über ein Synonym zulassen. Wir nehmen einfach an (da es so angegeben ist), dass das Objekt eine Tabelle ist.

0

Wenn ich Sie richtig verstehe, beziehen Sie sich mit "Synonym" auf eine Tabelle in einer anderen Datenbank, auf die über eine Datenbankverbindung zugegriffen wird. In diesem Fall können Sie entfernte Objekte nicht über eine Datenbankverbindung analysieren (zumindest nicht ab 11g).

From the horses mouth:

Sie können die folgenden Operationen mit Datenbankverbindungen nicht durchführen:

Grant-Privilegien auf entfernte Objekte

Execute Operationen auf einige entfernte Objekte beschreiben.Die folgenden entfernte Objekte jedoch unterstützen Operationen DESCRIBE:

Tabellen Ansichten Procedures Funktionen

entfernte Objekte analysieren

referentielle Integrität zu

Grant-Rollen definieren oder erzwingen Benutzer in einer entfernten Datenbank

Erhalten Sie nicht standardmäßige Rollen in einer entfernten Datenbank. Wenn beispielsweise jane eine Verbindung zur lokalen Datenbank herstellt und eine gespeicherte Prozedur ausführt, die eine feste Benutzerverbindung verwendet, die als scott verbindet, erhält jane die Standardrollen von scott in der entfernten Datenbank. Jane kann SET ROLE nicht an übergeben, um eine nicht standardmäßige Rolle zu erhalten.

Hash-Abfrage aus, schließt sich, dass Server-Verbindungen

Verwenden Sie einen aktuellen Benutzer Link ohne Authentifizierung über SSL, Passwort, oder nativen NT-Authentifizierung

+0

Ihre Annahme, dass ein Synonym ein "Zeiger" auf etwas in einer entfernten Datenbank über eine Datenbankverbindung ist, ist nicht ganz korrekt (oder sollte ich sagen, vollständig). Sie können ein Synonym für Tabellen in Ihrem eigenen Schema oder in einem anderen Schema in der lokalen Datenbank erstellen. – BobC

+1

@BobC Hallo Bob, ich machte diese Annahme basierend auf der OPs-Anweisung "eine Synonym-Tabelle bedeutet, dass sie auf eine andere Datenbank zeigt". Ich nehme auch an, dass Englisch nicht die Muttersprache des Posters ist, also versuche ich, aus der Post zu folgern, was ich kann. – tbone

Verwandte Themen