suchen
HeimDatenbankMySQL-TutorialOracle确定过期的统计信息

经过一段时间,随着数据库对象被修改,必须定期搜集统计信息。为了确定数据库对象需要新的数据库统计信息,oracle数据库提供了一

Youmust regularly gather statistics on database objects as thesedatabase objects are modified over time. To determine whether agiven database object needs new database statistics, OracleDatabase provides a table monitoring facility. This monitoring isenabled by default when STATISTICS_LEVEL is set toTYPICAL orALL.

经过一段时间,随着数据库对象被修改,,必须定期搜集统计信息。为了确定数据库对象需要新的数据库统计信息,oracle数据库提供了一个表监控特性。当STATISTICS_LEVEL设置为TYPICAL或ALL时,表监控特性默认是启动的。

 

Monitoring tracks the approximate number of INSERTs,UPDATEs, andDELETEs for that table andwhether the table has been truncated since the last time statisticswere gathered. You can access information about changes of tablesin theUSER_TAB_MODIFICATIONS view. Following adata-modification, there may be a few minutes delay while OracleDatabase propagates the information to this view. Use theDBMS_STATS.FLUSH_DATABASE_MONITORING_INFO procedure toimmediately reflect the outstanding monitored information kept inthe memory.

 

表监控特性跟踪从最后一次统计搜集后,表的insert、update、delete操作的近似数,和表是否被truncate。可以通过查询USER_TAB_MODIFICATIONS视图获得关于表变化的信息。数据修改后,通过USER_TAB_MODIFICATIONS获取修改信息可能有一些延时。使用DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO立即将延时信息保持到内存中。

 

TheGATHER_DATABASE_STATS orGATHER_SCHEMA_STATS procedures gather new statisticsfor tables with stale statistics when theOPTIONSparameter is set to GATHER STALE orGATHERAUTO. If a monitored table has been modified more than10%, then these statistics are considered stale and gatheredagain.

 

当属性OPTIONS设置为GATHER STALEor GATHERAUTO,GATHER_DATABASE_STATS或GATHER_SCHEMA_STATS为有过期统计信息的表搜集新的统计信息,如果一个监控的表修改超过了10%,则统计信息被认为过期,需再次搜集。

 

部分实验如下:


SQL> select * from test01;

A B
---------- ----------
21 10
9 10
22 10
23 10
24 10
25 10
1 1
2 2
44 44
55 55

10 rowsselected. ------表数据10行

SQL> select * fromuser_tab_modifications;

no rowsselected ------实验前已对测试库做了搜集统计信息,此时显示为空

SQL> insert into test01 values(66,66);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from user_tab_modifications;

no rowsselected ------表的修改未及时显示

SQL> exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO; ------将修改的信息keep到内存

PL/SQL procedure successfully completed.

SQL> selecttable_name,INSERTS,UPDATES,DELETES,truncated fromuser_tab_modifications;

TABLE_NAME INSERTS UPDATES DELETES TRU
------------------------------ ---------- ---------- -------------
TEST01 10 0 NO ------ 1 代表刚才的1条insert

 

为更好的展现监控信息,接着进行update、delete、truncate操作演示:


SQL> update test01 set a=77 where b=66;

1 row updated.

SQL> commit;

Commit complete.

SQL> selecttable_name,INSERTS,UPDATES,DELETES,truncated fromuser_tab_modifications;

TABLE_NAME INSERTS UPDATES DELETES TRU
------------------------------ ---------- ---------- -------------
TEST01 1 0 0 NO

SQL> exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;

PL/SQL procedure successfully completed.

SQL> selecttable_name,INSERTS,UPDATES,DELETES,truncated fromuser_tab_modifications;

TABLE_NAME INSERTS UPDATES DELETES TRU
------------------------------ ---------- ---------- -------------
TEST01 1 1 0 NO

SQL> delete from test01 where a=77;

1 row deleted.

SQL> commit;

Commit complete.

SQL> selecttable_name,INSERTS,UPDATES,DELETES,truncated fromuser_tab_modifications;

TABLE_NAME INSERTS UPDATES DELETES TRU
------------------------------ ---------- ---------- -------------
TEST01 1 1 0 NO

SQL> exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;

PL/SQL procedure successfully completed.

SQL> selecttable_name,INSERTS,UPDATES,DELETES,truncated fromuser_tab_modifications;

TABLE_NAME INSERTS UPDATES DELETES TRU
------------------------------ ---------- ---------- -------------
TEST01 1 1 1 NO

SQL> truncate table test01;

Table truncated.

SQL> selecttable_name,INSERTS,UPDATES,DELETES,truncated fromuser_tab_modifications;

TABLE_NAME INSERTS UPDATES DELETES TRU
------------------------------ ---------- ---------- -------------
TEST01 1 1 1 NO

SQL> exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;

PL/SQL procedure successfully completed.

SQL> selecttable_name,INSERTS,UPDATES,DELETES,truncated fromuser_tab_modifications;

TABLE_NAME INSERTS UPDATES DELETES TRU
------------------------------ ---------- ---------- -------------
TEST01 1 1 11YES

 

对表test01执行搜集统计信息,监控表的信息会清除:


SQL> execdbms_stats.gather_table_stats(null,'test01');



PL/SQL procedure successfully completed.

SQL> selecttable_name,INSERTS,UPDATES,DELETES,truncated fromuser_tab_modifications;

no rows selected

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie können Sie langsame Abfragen in MySQL identifizieren?Wie können Sie langsame Abfragen in MySQL identifizieren?Apr 26, 2025 am 12:15 AM

Das Identifizieren langsamer Abfragen in MySQL kann erreicht werden, indem langsame Abfrageprotokolle aktiviert und Schwellenwerte festgelegt werden. 1. Aktivieren Sie langsame Abfrageprotokolle und setzen Sie Schwellenwerte. 2. Sehen und analysieren Sie langsame Abfrageprotokolldateien und verwenden Sie Tools wie MySQLDUMPSLOW oder PT-Query-Digest für eingehende Analysen. 3. Die Optimierung langsamer Abfragen kann durch Indexoptimierung, Umschreiben von Abfragen und Vermeidung der Verwendung von Select*erreicht werden.

Wie können Sie die Gesundheit und Leistung von MySQL Server überwachen?Wie können Sie die Gesundheit und Leistung von MySQL Server überwachen?Apr 26, 2025 am 12:15 AM

Um die Gesundheit und Leistung von MySQL -Servern zu überwachen, sollten Sie auf Systemgesundheit, Leistungsmetriken und Abfrageausführung achten. 1) Überwachen Sie die Systemgesundheit: Verwenden Sie die Befehle von Top-, HTOP- oder ShowglobalStatus, um CPU-, Speicher-, Festplatten -E/A- und Netzwerkaktivitäten anzuzeigen. 2) Leistungsindikatoren verfolgen: Überwachen Sie die Schlüsselindikatoren wie die Abfragennummer pro Sekunde, die durchschnittliche Abfragezeit und den Cache -Hit -Rate. 3) Optimierung der Abfrageausführung sicherstellen: Aktivieren Sie langsame Abfragenprotokolle, zeichnen und optimieren Sie Abfragen, deren Ausführungszeit den festgelegten Schwellenwert überschreitet.

Vergleichen und kontrastieren Sie MySQL und Mariadb.Vergleichen und kontrastieren Sie MySQL und Mariadb.Apr 26, 2025 am 12:08 AM

Der Hauptunterschied zwischen MySQL und Mariadb ist Leistung, Funktionalität und Lizenz: 1. MySQL wird von Oracle entwickelt und Mariadb ist seine Gabel. 2. Mariadb kann in Umgebungen mit hoher Last besser abschneiden. 3.MariADB bietet mehr Speichermotoren und Funktionen. 4.Mysql nimmt eine doppelte Lizenz an, und Mariadb ist vollständig Open Source. Die vorhandene Infrastruktur, Leistungsanforderungen, funktionale Anforderungen und Lizenzkosten sollten bei der Auswahl berücksichtigt werden.

Wie ist die Lizenzierung von MySQL mit anderen Datenbanksystemen verglichen?Wie ist die Lizenzierung von MySQL mit anderen Datenbanksystemen verglichen?Apr 25, 2025 am 12:26 AM

MySQL verwendet eine GPL -Lizenz. 1) Die GPL -Lizenz ermöglicht die freie Verwendung, Änderung und Verteilung von MySQL, aber die geänderte Verteilung muss GPL entsprechen. 2) Gewerbelizenzen können öffentliche Änderungen vermeiden und für gewerbliche Anwendungen geeignet sind, die Vertraulichkeit erfordern.

Wann würden Sie InnoDB über MyISAM wählen und umgekehrt?Wann würden Sie InnoDB über MyISAM wählen und umgekehrt?Apr 25, 2025 am 12:22 AM

Die Situationen bei der Auswahl von InnoDB anstelle von MyISAM umfassen: 1) Unterstützung der Transaktion, 2) hohe Genauigkeitsumgebung, 3) hohe Datenkonsistenz; Umgekehrt umfasst die Situation bei der Auswahl von MyISAM: 1) hauptsächlich Lesen von Operationen, 2) Es ist keine Transaktionsunterstützung erforderlich. InnoDB ist für Anwendungen geeignet, die eine hohe Datenkonsistenz und Transaktionsverarbeitung erfordern, z. B. E-Commerce-Plattformen, während MyISAM für lessintensive und transaktionsfreie Anwendungen wie Blog-Systeme geeignet ist.

Erklären Sie den Zweck von Fremdschlüssel in MySQL.Erklären Sie den Zweck von Fremdschlüssel in MySQL.Apr 25, 2025 am 12:17 AM

In MySQL besteht die Funktion von Fremdschlüssel darin, die Beziehung zwischen Tabellen herzustellen und die Konsistenz und Integrität der Daten zu gewährleisten. Fremdeschlüssel behalten die Wirksamkeit von Daten durch Referenzintegritätsprüfungen und Kaskadierungsvorgänge bei. Achten Sie auf die Leistungsoptimierung und vermeiden Sie bei der Verwendung häufige Fehler.

Was sind die verschiedenen Arten von Indizes in MySQL?Was sind die verschiedenen Arten von Indizes in MySQL?Apr 25, 2025 am 12:12 AM

Es gibt vier Hauptindextypen in MySQL: B-Tree-Index, Hash-Index, Volltextindex und räumlicher Index. 1.B-Tree-Index ist für Reichweite, Sortierung und Gruppierung geeignet und für die Erstellung der Namensspalte der Mitarbeiter-Tabelle geeignet. 2. Hash -Index ist für äquivalente Abfragen geeignet und für die Erstellung der ID -Spalte der Tabelle Hash_Table der Speicherspeicher -Engine geeignet. 3. Der Volltextindex wird für die Textsuche verwendet, die für die Erstellung in der Inhaltspalte der Artikeltabelle geeignet ist. 4. Der räumliche Index wird für die Geospatial -Abfrage verwendet, die für die Erstellung auf Geom -Spalten der Standorte Tabelle geeignet ist.

Wie erstellen Sie einen Index in MySQL?Wie erstellen Sie einen Index in MySQL?Apr 25, 2025 am 12:06 AM

TocreateanIndexinMysql, UsethecreatInedExStatement.1) ForasingLecolumn, verwenden Sie "createIdexidx_lastNameOntrayees (Nachname); 2) foracompositeIndex, verwenden" createIndexidx_nameonomiebhaber (Lastname, Firstname);

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft