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?
Antwort
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.
Sie sollten ANALYZE nicht verwenden, um Statistiken zu sammeln. Du solltest DBMS_STATS() verwenden – BobC
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
Für die Ansammlung der Statistiken sollten Sie DBMS_STATS() benutzen. ANALYZE validiert Struktur, wie verkettete Zeilen, Freelist-Blöcke usw. – BobC
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.
Dies ist keine Antwort eher sollte es ein Kommentar sein. – XING
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.
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).
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
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
@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
- 1. Warum kann ich eine in Ruby gespeicherte Datumszeichenfolge nicht analysieren?
- 2. Wie kann ich eine XML-Antwort analysieren?
- 3. Wie kann ich eine Excel-Formel analysieren?
- 4. Warum kann Java dieses Bild nicht analysieren?
- 5. Warum kann ich keine Daten in eine vorhandene Tabelle importieren?
- 6. Warum kann ich keine Mitglieder eine importierte Deklaration hinzufügen?
- 7. NSXMLParser keine Sonderzeichen analysieren kann (Akzent)
- 8. Warum kann ich diese Datumszeichenfolge nicht korrekt mit NSDateFormatter analysieren?
- 9. Warum kann ich keine Schienen installieren?
- 10. Warum kann ich keine benutzerdefinierte Middleware registrieren?
- 11. Warum kann ich keine numpy Warnungen unterdrücken
- 12. Warum kann ich keine exklusive Sperre erwerben?
- 13. Warum kann ich keine function.apply aufrufen?
- 14. Firebase-Statistik
- 15. Fehlerbehebung: Warum kann ich keine Sperre erhalten?
- 16. Warum kann ich keine Sonnenpakete importieren?
- 17. Warum kann ich keine Datei hochladen?
- 18. Warum kann ich keine EJB-Ausnahmen erfassen?
- 19. WPF: Warum kann ich keine Daten binden?
- 20. Warum kann ich keine Bindung constexpr?
- 21. Warum kann ich keine HTML-Tags erstellen?
- 22. Warum kann keine Zuweisungsanweisung
- 23. Ich kann eine Tabelle Kind mit Xpath nicht analysieren
- 24. Knockout derzeit keine Bindungen in foreach auf eine Funktion analysieren
- 25. Wie kann ich eine Zeichenfolge, die keine Trennzeichen enthält, mit C# zu DateTime analysieren?
- 26. Excel/Statistik Ausgabe
- 27. Javascript Datum analysieren, warum
- 28. Wie kann ich GeoJson mit Gson analysieren?
- 29. Werte der Bootstrap-Statistik
- 30. Umfrage Statistik Diagramm Ideen
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?) –
@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