You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
Version 1
Next »
Motivation
IO statistics is used by all database vendors to have ability monitoring and tuning of performance a queries and found bottle neck related to IO operations.
The proposed solution is to implement gathering IO statistics for logical (memory) read pages and physical (storage) read/write pages. The statistics can be used at least for :
- Analyze IO performance of a query.
- Have ability to understand why performance goes down in case it related to IO. For example on concrete node or cache.
- Evaluate effectiveness of use indexes. Find unused indexes.
- See most IO aggressive queries.
Competitive analysis
Industrial RDBMS vendors (Oracle, Postgres, MySQL) collect detailed IO statistics in dimensions such as queries, database objects (tables and indexes), files, sessions, users, event types etc.
- Oracle
- v$filestat - This view displays the number of physical reads and writes done and the total number of single-block and multiblock I/Os done at file level
- v$segment_statistics - displays information about segment-level statistics.
- v$sqlarea - lists statistics on shared SQL area and contains one row per SQL string. It provides statistics on SQL statements that are in memory, parsed, and ready for execution.
- v$sysstat - displays system statistics.
- v$sesstat - displays user session statistics.
- AWR - historical statistics.
- pg_stat_database - Contain one row for each database in the cluster, showing database-wide statistics.
- pg_statio_all_tables - Contain one row for each table in the current database (including TOAST tables), showing statistics about I/O on that specific table.
- pg_statio_all_indexes - Contain one row for each index in the current database, showing statistics about I/O on that specific index.
- pg_stat_all_indexes - Contain one row for each index in the current database, showing statistics about accesses to that specific index.
- pg_stat_all_tables - Contain one row for each table in the current database, showing statistics about accesses to that specific table.
MySQL
Risks and Assumptions
// Describe project risks, such as API or binary compatibility issues, major protocol changes, etc.
Reference Links
// Links to various reference documents, if applicable.
TBD
- Cluster wide statistics
- exposed interfaces: SQL, JMX, Visor, CMD, Web Console ....
Tickets
// Links or report with relevant JIRA tickets.