dba:postgresql:postgresql_basic_querys
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
dba:postgresql:postgresql_basic_querys [2022/07/11 06:59] – [List Foreign keys] dodger | dba:postgresql:postgresql_basic_querys [2023/10/23 07:25] – [Locks] dodger | ||
---|---|---|---|
Line 109: | Line 109: | ||
===== list schemas ===== | ===== list schemas ===== | ||
+ | Sortcode: | ||
< | < | ||
\dn | \dn | ||
+ | </ | ||
+ | |||
+ | Query: | ||
+ | <code sql> | ||
+ | SELECT n.nspname AS " | ||
+ | pg_catalog.pg_get_userbyid(n.nspowner) AS " | ||
+ | FROM pg_catalog.pg_namespace n | ||
+ | WHERE n.nspname !~ ' | ||
+ | ORDER BY 1; | ||
</ | </ | ||
Line 151: | Line 161: | ||
===== list functions ===== | ===== list functions ===== | ||
+ | |||
+ | <code sql> | ||
+ | \df | ||
+ | </ | ||
+ | |||
+ | Or | ||
+ | <code sql> | ||
+ | SELECT n.nspname as " | ||
+ | p.proname as " | ||
+ | CASE p.prokind | ||
+ | WHEN ' | ||
+ | WHEN ' | ||
+ | WHEN ' | ||
+ | ELSE ' | ||
+ | END as " | ||
+ | FROM pg_catalog.pg_proc p LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace | ||
+ | WHERE pg_catalog.pg_function_is_visible(p.oid) | ||
+ | AND n.nspname <> ' | ||
+ | AND n.nspname <> ' | ||
+ | ORDER BY 1, 2; | ||
+ | </ | ||
+ | |||
+ | |||
+ | or complete: | ||
+ | <code sql> | ||
+ | SELECT n.nspname as " | ||
+ | p.proname as " | ||
+ | pg_catalog.pg_get_function_result(p.oid) as " | ||
+ | pg_catalog.pg_get_function_arguments(p.oid) as " | ||
+ | CASE p.prokind | ||
+ | WHEN ' | ||
+ | WHEN ' | ||
+ | WHEN ' | ||
+ | ELSE ' | ||
+ | END as " | ||
+ | FROM pg_catalog.pg_proc p | ||
+ | LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace | ||
+ | WHERE pg_catalog.pg_function_is_visible(p.oid) | ||
+ | AND n.nspname <> ' | ||
+ | AND n.nspname <> ' | ||
+ | ORDER BY 1, 2; | ||
+ | </ | ||
+ | Note: | ||
+ | " | ||
+ | |||
+ | ==== Aggregate functions ==== | ||
+ | |||
<code sql> | <code sql> | ||
\da | \da | ||
Line 270: | Line 327: | ||
WHERE TABLE_NAME | WHERE TABLE_NAME | ||
order by ordinal_position | order by ordinal_position | ||
+ | ; | ||
+ | </ | ||
+ | ==== dba_tab_columns ==== | ||
+ | |||
+ | inefficient but who cares | ||
+ | <code sql> | ||
+ | SELECT * from | ||
+ | ( | ||
+ | SELECT table_catalog DB_NAME, | ||
+ | table_schema SCHEMA_NAME, | ||
+ | table_name, | ||
+ | column_name, | ||
+ | ordinal_position, | ||
+ | data_type, | ||
+ | character_maximum_length, | ||
+ | column_default, | ||
+ | is_nullable | ||
+ | FROM information_schema.columns | ||
+ | order by ordinal_position | ||
+ | ) as dba_tab_columns | ||
+ | WHERE COLUMN_NAME LIKE ' | ||
; | ; | ||
</ | </ | ||
Line 283: | Line 361: | ||
FROM INFORMATION_SCHEMA.STATISTICS | FROM INFORMATION_SCHEMA.STATISTICS | ||
WHERE TABLE_SCHEMA = ' | WHERE TABLE_SCHEMA = ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== List column index ===== | ||
+ | ==== dba_ind_columns ==== | ||
+ | |||
+ | |||
+ | <code sql> | ||
+ | SELECT | ||
+ | np.nspname AS schema_name, | ||
+ | t.relname AS table_name, | ||
+ | a.attname AS column_name, | ||
+ | i.relname AS index_name | ||
+ | FROM | ||
+ | pg_class t, | ||
+ | pg_class i, | ||
+ | pg_index ix, | ||
+ | pg_attribute a, | ||
+ | pg_namespace np | ||
+ | WHERE | ||
+ | t.oid = ix.indrelid | ||
+ | AND i.oid = ix.indexrelid | ||
+ | AND a.attrelid = t.oid | ||
+ | AND a.attnum = ANY(ix.indkey) | ||
+ | AND np.oid = t.relnamespace | ||
+ | AND t.relkind = ' | ||
+ | AND a.attname like ' | ||
+ | AND i.relname like ' | ||
+ | AND t.relname like ' | ||
+ | ORDER BY | ||
+ | t.relname, | ||
+ | a.attname; | ||
</ | </ | ||
Line 476: | Line 587: | ||
===== Locks ===== | ===== Locks ===== | ||
+ | This query will list all locks: | ||
<code sql> | <code sql> | ||
SELECT psa.datid, | SELECT psa.datid, | ||
Line 491: | Line 603: | ||
; | ; | ||
</ | </ | ||
+ | |||
+ | This query will list all //blocking sessions//, see [[https:// | ||
+ | <code sql> | ||
+ | SET application_name=' | ||
+ | SELECT blocked_locks.pid | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | JOIN pg_catalog.pg_stat_activity blocked_activity | ||
+ | JOIN pg_catalog.pg_locks | ||
+ | ON blocking_locks.locktype = blocked_locks.locktype | ||
+ | AND blocking_locks.DATABASE IS NOT DISTINCT FROM blocked_locks.DATABASE | ||
+ | AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation | ||
+ | AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page | ||
+ | AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple | ||
+ | AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid | ||
+ | AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid | ||
+ | AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid | ||
+ | AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid | ||
+ | AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid | ||
+ | AND blocking_locks.pid != blocked_locks.pid | ||
+ | JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid | ||
+ | WHERE NOT blocked_locks.GRANTED; | ||
+ | </ | ||
+ | |||
+ | |||
===== Change user password ===== | ===== Change user password ===== | ||
<code sql> | <code sql> |
dba/postgresql/postgresql_basic_querys.txt · Last modified: 2024/04/19 07:37 by dodger