1. 程式人生 > >pgsql使用積累系列_表空間佔用分析過程

pgsql使用積累系列_表空間佔用分析過程

寫在前面,這裡只記錄了部分。若想看完整版的可參考官網。

這裡分享下問題搜尋過程分享。效能分析必然離不開系統函式。像pg這樣成熟的產品假設這一套是完善的(不完善也勝過我們大多數人),對於分析的檢視或者指令碼如果我知道了一個,那麼根據區域性相關性原理,相似的功能很可能都在一起。思考就講到這。

接著開啟百度搜索postgresql docs。開啟官網文件,根據已知的功能函式/表/檢視去找未知的功能,如我知道pg_table_size,就可以按照下圖搜尋,當然我只是截出了搜尋的位置,點search的結果並不是這個頁面。這裡只是想強調一點如何利用官網查文件,而不用在百度反覆找同樣的東西浪費時間,當然如果你什麼都不知道,還是要通過百度或者其他搜尋引擎找到一個入口的。


-- 檢視pg活躍程序
select pid,query_start,wait_event_type,wait_event,query from pg_stat_activity where state='active'
-- 檢視單表大小,根據官網資訊可知pg_table_size 由表大小+TOAST大小+free space map(維護heap和(非hash索引)索引的對映關係)+visibility map(跟vacuum有關係,維護heap之間的關係,)可以通過上面提到的查詢文件方法,根據關鍵字free space map和visibility map到官網查到,為避免誤導別人,也誤導自己就不做過多的翻譯了。-- Disk space used by the specified table, excluding indexes (but including TOAST, free space map, and visibility map)

-- 用友好的方式查看錶大小。也可以用pg_relation_size('relationName') relation可以包括index,table等
-- pg_total_relation_size() 查看錶相關的所有relation佔用空間
select pg_size_pretty(pg_table_size('crm_iope.crm_ex_order_detail'));
-- 查看錶的實際儲存位置及佔用空間
SELECT oid,pg_relation_filepath(177130), relpages FROM pg_class WHERE relname = 'crm_ex_order_detail';
-- 檢視使用者表資訊,根據表名和schema名找到relid
select * from pg_stat_user_tables where relname = 'crm_ex_order_detail' and schemaname='crm_iope'

-- 根據使用者表id,檢視對應使用者表的Toast(pg儲存優化技術,對於大資料效果更好)表oid
select utbl.relid,pc.relname,pc.relfilenode,pc.reltoastrelid from pg_stat_user_tables utbl, pg_class pc 
where utbl.schemaname='crm_iope' and utbl.relname='crm_ex_order_detail'
and utbl.relid = pc.oid ;-- 檢視toast表元資料資訊,使用者表pg_stat_user_tables查不到
select * from pg_stat_all_tables where relname = 'pg_toast_177130'

-- 檢視toast資料資訊
select * from pg_toast.pg_toast_177130

-- VACUUM Progress Reporting,優化執行計劃程序報告,對於增刪改操作,操作完成後,pg會預設開啟執行計劃優化方案,以提高查詢效能。
select * from pg_stat_progress_vacuum;

-- 查詢toast佔用空間,結合具體的使用者表才有意義
SELECT relname, relpages
FROM pg_class,
(SELECT reltoastrelid
FROM pg_class
WHERE relname = 'crm_ex_order_detail') AS ss
WHERE (oid = ss.reltoastrelid OR
oid = (SELECT indexrelid
FROM pg_index
WHERE indrelid = ss.reltoastrelid))
and oid = 242295
ORDER BY relname;

-- 查詢索引暫用空間,結合表才有意義
SELECT c2.relname, c2.relpages
FROM pg_class c, pg_class c2, pg_index i
WHERE c.relname = 'crm_ex_order_detail' AND
c.oid = i.indrelid AND
c2.oid = i.indexrelid and
c.oid = 177130
ORDER BY c2.relname;

-- 檢視最近使用的表/或索引使用的情況
SELECT oid,relname, relpages
FROM pg_class
ORDER BY relpages DESC;

vacuumdb: 清理vacuum 產生的資料。在頻繁insert、update、delete的情況下這個值會很大,很耗磁碟。
而且這個值是pg_table_size的一部分。對單表操作影響很大
如果安裝了postgresql的話在 bin目錄下可以檢視有哪些功能(包括vacuumdb),windows環境下可以通過cmd切換到bin目下,
然後執行vacuumdb -?或者--help檢視用法,其他命令(如備份)的使用方法查詢都是一樣的。

相關推薦

pgsql使用積累系列_空間佔用分析過程

寫在前面,這裡只記錄了部分。若想看完整版的可參考官網。這裡分享下問題搜尋過程分享。效能分析必然離不開系統函式。像pg這樣成熟的產品假設這一套是完善的(不完善也勝過我們大多數人),對於分析的檢視或者指令碼如果我知道了一個,那麼根據區域性相關性原理,相似的功能很可能都在一起。思考

pgsql使用積累系列_安裝pg_stat_statements獲取慢sql

  1. 安裝postgresql(10.1) 參考連結:postgresql10安裝 2. 配置postgresql.conf檔案 開啟配置檔案找到shared_preload_libraries,新增pg_stat_statements,配置好要重啟pgsql。如下

Oracle臨時空間使用分析

臨時表空間查詢臨時表空間的使用情況: select * from (select a.tablespace_name,sum(maxbytes/1024/1024/1024) total_G,sum(a.bytes/1024/1024) allocated_mbfrom dba_temp_files awhe

JDBC與MySQL臨時空間分析

文章來源:愛可生雲資料庫 作者:秦沛、胡呈清 背景 應用 JDBC 連線引數採用 useCursorFetch=true,查詢結果集存放在 mysqld 臨時表空間中,導致ibtmp1 檔案大小暴增到90多G,耗盡伺服器磁碟空間。為了限制臨時表空間的大小,設定了

Mysql資料庫及空間佔用資訊統計

1、mysql中檢視各表的大小 這裡用到一個表, information_schema.tables;對應主要欄位含義如下: ABLE_SCHEMA : 資料庫名 TABLE_NAME:表名 ENGINE:所使用的儲存引擎 TABLES_ROWS:記錄數 DATA_LENGTH:資料大小 INDEX

oracle資料庫_例項_使用者_空間之間的關係

基礎概念:Oracle資料庫、例項、使用者、表空間、表之間的關係 資料庫:Oracle資料庫是資料的物理儲存。這就包括(資料檔案ORA或者DBF、控制檔案、聯機日誌、引數檔案)。其實Oracle資料庫的概念和其它資料庫不一樣,這裡的資料庫是一個作業系統只有一個庫。可以看作

oracle 11g 空間遷移 實驗過程

 參考文件:在複製或移動表空間前,使用者首先將表空間置於只讀狀態,再複製表空間的資料檔案(datafile),最後使用export/import工具遷移位於資料字典(data dictionary)中的資料庫元資料資訊(database metadata informatio

pgsql使用積累系列_pg資料庫外掛安裝(以建立外部連線為例)

pg資料庫外掛安裝看這一篇就足夠了 寫在前面pgsql的外部表連線就是dblink,通過不同的外部連線外掛可以實現pg庫操作其他資料庫(pg資料庫或者mysql等其他型別的資料庫)。這裡以外部連線其他pg資料庫和mysql為例,聊聊pg資料庫外掛安裝。 1. 安裝postgresql(1

MySQL系列:innodb原始碼分析空間管理

innodb在實現表空間(table space)基於檔案IO之上構建的一層邏輯儲存空間管理,table space採用邏輯分層的結構:space、segment inode、extent和page.在實現層的邏輯使用了磁碟連結串列這種結構來管理邏輯關係。我們先來介紹磁碟連

information_schema系列六(索引,空間,權限,約束相關)

wid mysql 表名 car cin end _id tables code 1: STATISTICS 這個表提供的是關於表的索引信息: INFORMATION_SCHEMA Name SHOW Name TABLE_CATALO

Oracle小技巧_不同空間不同用戶導入導出數據dmp

16px 這就是 直接 改變 索引 什麽 rom oracle數據庫 添加 【博主註:數據庫方面 ITPUB網站及博客內容非常豐富翔實】 轉載來源 ITPUB 博客經常有人會問:原來的數據在USERS表空間裏面,我想把它IMP進APP表空間,我已經修改了目的

pgsql使用積累系列_pg資料庫定時任務配置

1. 安裝postgresql(10.1) 參考連結:postgresql10安裝 2. 安裝服務端pgadmin4 在postgresql10版本中 pgadmin4  yum源已經包含在postgresql資料庫安裝的yum源中,不需要再另行處理 直接安裝 yu

unity優化《二》--Texture圖片空間和記憶體佔用分析

打包多種型別的專案,空專案和10張放在Resources資料夾中的圖為比較案例。以下是比較資料。 IPHONE: 1.空專案----空間佔用量42.3MB----IPA大小10MB 2.10張1200*520無壓縮Texure 單張圖佔用量2.8MB----空間佔用量70.2MB

Oracle中查詢表的大小、佔用情況和空間的大小

有兩種含義的表大小。一種是分配給一個表的物理空間數量,而不管空間是否被使用。可以這樣查詢獲得位元組數: select segment_name, bytes  from user_segments  where segment_type = 'TABLE';  或者 &

地圖投影系列淺析(一)_ 地球空間模型

1、現實世界和座標空間的聯絡         任何空間特徵都表示為地球表面的一個特定位置,而位置依賴於既定的座標系來表示。         通過統一的座標系和高程系,可以使不同源的GIS資料疊加在一起顯示,以及執行空

oracle_建立空間_臨時空間_修改空間_以及自增長

管理員使用者登入oracle資料庫 [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 1 14:59:27 2019 Copyright (c) 1982,

Unity3D–Texture圖片空間和記憶體佔用分析

Texture圖片空間和記憶體佔用分析。由於U3D並沒有很好的詮釋對於圖片的處理方式,所以很多人一直對於圖集的大小和記憶體的佔用情況都不瞭解。在此對於U3D的圖片問題做一個實際資料的分析。此前的專案都會存在這樣或者那樣的打包後包大小與記憶體佔用情況的問題,所以這次所以徹徹底底得分析下U3D對於Texture

pgsql使用積累系列_pg儲存過程(函式)建立(以手機號校驗為例)

      pg資料庫裡面沒有地道的儲存過程(procudure),取而代之的是函式。函式的編寫支援多種語言,底層的庫函式通常是用C語言編寫的,應用級別函式可用sql和pgsql。 下面通過一個通用的手機號清洗的函式,來展示一個函式的級別要素,通用函式構造方案,

如何Shrink Undo空間,釋放過度佔用空間

環境:OS:Red Hat Enterprise Linux AS release 4 (Nahant)DB:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production 一臺Oracle10gR

創建空間(轉)

文件的 temporary 回滾 http 碎片 重要 .html temp 希望 原文地址:http://blog.chinaunix.net/uid-20802110-id-2105656.html CREATE [UNDO] TABLESPACE tablesp