sysadmin:postgresql
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
sysadmin:postgresql [2014/11/05 09:40] – tabelle vuote feroda | sysadmin:postgresql [2014/11/25 09:38] – [Occupazione disco per tabelle] - tolto LIMIT 20 feroda | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Basi di configurazione ====== | + | ====== |
- eseguire ''/ | - eseguire ''/ | ||
Line 10: | Line 10: | ||
* Performance Tuning: http:// | * Performance Tuning: http:// | ||
* Ottimo articolo segnalato da AndreaF http:// | * Ottimo articolo segnalato da AndreaF http:// | ||
+ | * Index Maintenance https:// | ||
===== Query utili su indici e loro utilizzo | ===== Query utili su indici e loro utilizzo | ||
+ | |||
+ | Indici presenti | ||
+ | |||
+ | [0] SELECT * FROM pg_indexes; | ||
==== Ricerca indici doppi ==== | ==== Ricerca indici doppi ==== | ||
Line 32: | Line 37: | ||
SELECT relid, | SELECT relid, | ||
- | Indici presenti | ||
- | |||
- | SELECT * FROM pg_indexes; | ||
- | | ||
Filtra solo quelli utilizzati almeno una volta | Filtra solo quelli utilizzati almeno una volta | ||
| | ||
Line 64: | Line 65: | ||
===== Esecuzione query al ... ===== | ===== Esecuzione query al ... ===== | ||
+ | * [0] = ... indici totali | ||
* [1] = ... indici doppi | * [1] = ... indici doppi | ||
* [2] = ... indici non usati | * [2] = ... indici non usati | ||
Line 69: | Line 71: | ||
* [4] = ... indici usati ma non efficaci | * [4] = ... indici usati ma non efficaci | ||
* [5] = ... tabelle vuote | * [5] = ... tabelle vuote | ||
+ | |||
+ | ====== Occupazione disco per tabelle ====== | ||
+ | |||
+ | Restituisce un elenco ordinato in modo discendente di: | ||
+ | |||
+ | * schema (aka " | ||
+ | * tabella | ||
+ | * occupazione su disco | ||
+ | * occupazione totale compresi indici | ||
+ | * numero stimato di righe | ||
+ | |||
+ | SELECT table_schema, | ||
+ | (size/ | ||
+ | (total_size/ | ||
+ | (CASE WHEN pg_class.reltuples > 0 THEN | ||
+ | basic_infos.size/ | ||
+ | ELSE 0 | ||
+ | END | ||
+ | )::bigint AS estimated_row_count | ||
+ | FROM ( | ||
+ | SELECT table_schema, | ||
+ | pg_relation_size('"' | ||
+ | pg_total_relation_size('"' | ||
+ | FROM information_schema.tables | ||
+ | WHERE table_schema NOT IN (' | ||
+ | ORDER BY size DESC, total_size DESC | ||
+ | ) AS basic_infos | ||
+ | JOIN pg_class | ||
+ | ON ('"' | ||
+ | |||
+ | Questa query funziona su PostgreSQL 8.4. E credo valga anche per PostgreSQL >= 9.0. Potrebbe essere interessante pubblicarla da qualche parte. | ||
+ | |||
+ | |||
+ | ====== Informazioni varie... ====== | ||
===== Query comode x debug ===== | ===== Query comode x debug ===== |