postgresql?常用SQL語句小結(jié)
1、查詢鏈接數(shù)
SELECT sum(numbackends) FROM pg_stat_database;
2、查看死鎖狀態(tài)
select pid, ? ? ? ?usename, ? ? ? ?pg_blocking_pids(pid) as blocked_by, ? ? ? ?query as blocked_query from pg_stat_activity where cardinality(pg_blocking_pids(pid)) > 0;
3、刪除死鎖進(jìn)程
SELECT pg_cancel_backend(__pid__); SELECT pg_terminate_backend(__pid__);
4、備份數(shù)據(jù)庫(kù)
# sql文件 pg_dump dangerousdb > db.sql # tar文件 pg_dump -U postgres -F c dangerousdb > dangerousdb.tar # gz文件 pg_dump -U postgres dangerousdb | gzip > dangerousdb.gz
5、還原數(shù)據(jù)庫(kù)
# 已經(jīng)存在數(shù)據(jù)庫(kù) pg_restore -U postgres -Ft -d dbcooper < dbcooper.tar # 創(chuàng)建新數(shù)據(jù)庫(kù) pg_restore -U postgres -Ft -C -d dbcooper < dbcooper.tar #? ?
6、插入數(shù)據(jù)
插入單條數(shù)據(jù)
INSERT INTO TABLE_1 ( column_1, column_2, column_3 ) values( column_1, column_2, column_3 )
插入多條數(shù)據(jù)
INSERT INTO TABLE_1 ( column_1, column_2, column_3 ) values( column_1, column_2, column_3 ),( column_1, column_2, column_3 )...
從一張表查詢到的數(shù)據(jù)插入到另一張表
INSERT INTO TABLE_1 ( column_1, column_2, column_3 ) SELECT column_1, column_2, column_3 FROM TABLE_2 where TABLE_2條件;
7 、查詢pg中單張表的大?。ú话饕?/h2>
select
? ? pg_size_pretty(pg_relation_size('schema.table_name'));
select ? ? pg_size_pretty(pg_relation_size('schema.table_name'));
8、查詢數(shù)據(jù)庫(kù)中所有表的大小
select ? ? relname, ? ? pg_size_pretty(pg_relation_size(relid)) from ? ? pg_stat_user_tables where ? ? schemaname = 'public' order by ? ? pg_relation_size(relid) desc;
9、按順序查看索引
select ? ? indexrelname, ? ? pg_size_pretty(pg_relation_size(relid)) from ? ? pg_stat_user_indexes where ? ? schemaname = 'public' order by ? ? pg_relation_size(relid) desc;
10 、查詢數(shù)據(jù)庫(kù)的大小
select ? ? pg_database.datname, ? ? pg_size_pretty (pg_database_size(pg_database.datname)) as size from ? ? pg_database;
11、查詢被鎖定的表
select ? ? pg_class.relname as table, ? ? pg_database.datname as database, ? ? pid, ? ? mode, ? ? granted from ? ? pg_locks, ? ? pg_class, ? ? pg_database where ? ? pg_locks.relation = pg_class.oid ? ? and pg_locks.database = pg_database.oid;
12 、查詢一個(gè)Schema下面的所有表的總大?。▎挝籑B,包括索引和數(shù)據(jù))
select ? ? schemaname , ? ? round(sum(pg_total_relation_size(schemaname || '.' || tablename))/ 1024 / 1024) "Size_MB" from ? ? pg_tables where ? ? schemaname = '<schemaname>' group by ? ? 1;
13 、查詢所有表的大小并排序(包含索引)
select ? ? table_schema || '.' || table_name as table_full_name, ? ? pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) as size from ? ? information_schema.tables order by ? ? pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') desc limit 20;
14 、查詢表大小按大小排序并分離data與index
select ? ? table_name, ? ? pg_size_pretty(table_size) as table_size, ? ? pg_size_pretty(indexes_size) as indexes_size, ? ? pg_size_pretty(total_size) as total_size from ? ? ( ? ? select ? ? ? ? table_name, ? ? ? ? pg_table_size(table_name) as table_size, ? ? ? ? pg_indexes_size(table_name) as indexes_size, ? ? ? ? pg_total_relation_size(table_name) as total_size ? ? from ? ? ? ? ( ? ? ? ? select ? ? ? ? ? ? ('"' || table_schema || '"."' || table_name || '"') as table_name ? ? ? ? from ? ? ? ? ? ? information_schema.tables) as all_tables ? ? order by ? ? ? ? total_size desc) as pretty_sizes;
或者
select ? ? table_name, ? ? pg_size_pretty(table_size) as table_size, ? ? pg_size_pretty(indexes_size) as indexes_size, ? ? pg_size_pretty(total_size) as total_size from ? ? ( ? ? select ? ? ? ? table_name, ? ? ? ? pg_table_size(table_name) as table_size, ? ? ? ? pg_indexes_size(table_name) as indexes_size, ? ? ? ? pg_total_relation_size(table_name) as total_size ? ? from ? ? ? ? ( ? ? ? ? select ? ? ? ? ? ? ('' || table_schema || '.' || table_name || '') as table_name ? ? ? ? from ? ? ? ? ? ? information_schema.tables) as all_tables ? ? order by ? ? ? ? total_size desc) as pretty_sizes;
到此這篇關(guān)于postgresql 常用SQL語句小結(jié)的文章就介紹到這了,更多相關(guān)postgresql 常用SQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
postgresql流復(fù)制原理以及流復(fù)制和邏輯復(fù)制的區(qū)別說明
這篇文章主要介紹了postgresql流復(fù)制原理以及流復(fù)制和邏輯復(fù)制的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12PostgreSQL自定義函數(shù)并且調(diào)用方式
這篇文章主要介紹了PostgreSQL如何自定義函數(shù)并且調(diào)用,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06PostgreSQL 存儲(chǔ)過程的進(jìn)階講解(含游標(biāo)、錯(cuò)誤處理、自定義函數(shù)、事務(wù))
PL/pgSQL 游標(biāo)允許我們封裝一個(gè)查詢,然后每次處理結(jié)果集中的一條記錄,這篇文章主要介紹了PostgreSQL 存儲(chǔ)過程的進(jìn)階介紹(含游標(biāo)、錯(cuò)誤處理、自定義函數(shù)、事務(wù)),需要的朋友可以參考下2023-03-03PostgreSQL使用jsonb進(jìn)行數(shù)組增刪改查的操作詳解
有時(shí)候我們需要使用PostgreSQL這種結(jié)構(gòu)化數(shù)據(jù)庫(kù)來存儲(chǔ)一些非結(jié)構(gòu)化數(shù)據(jù),PostgreSQL恰好又提供了json這種數(shù)據(jù)類型,這里我們來簡(jiǎn)單介紹使用jsonb的一些常見操作,需要的朋友可以參考下2024-03-03postgresql 實(shí)現(xiàn)將字段為空的值替換為指定值
這篇文章主要介紹了postgresql 實(shí)現(xiàn)將字段為空的值替換為指定值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01