1. 程式人生 > >利用系統快取提高PostgreSQL操作效率

利用系統快取提高PostgreSQL操作效率

環境介紹:

OS:Centos 6.4 64bit
Database:PostgreSQL9.4
Memory:2G
CPU:1核

下載安裝:

pgfoundry下載pgfincore-v1.1.1.tar.gz,,將原始碼解壓到資料庫原始碼下的contrib下。不要在其github上下載,目前應該有一些bug,最新版本為1.1.1,1.1.2在我試用的時候發現大部分函式無法使用。

其次在我編譯時一直出現如下錯誤:

Shell
123456 [postgres@localhost pgfincore-1.1.1]$make/bin/sh:pg_config:commandnotfoundmake:pg_config:Commandnotfoundcppgfincore.sqlpgfincore--1.1.1.sqlcp:cannot create regular file`pgfincore--1.1.1.sql':Permission deniedmake:***[pgfincore--1.1.1.sql]Erro<code>
r1

所以在此我修改了一下Makefile檔案,內容如下:

Shell
1234567891011121314151617 # contrib/pgfincore/MakefileMODULE_big=pgfincoreOBJS=pgfincore.oEXTENSION=pgfincoreDATA=pgfincore--1.1.1.sqlpgfincore--unpackaged--1.1.1.sqlifdef USE_PGXSPG_CONFIG=pg_configPGXS:=$(shell$(PG_CONFIG)--pgxs)include$(PGXS)elsesubdir=contrib/pgfincoretop_builddir=../..include$(top_builddir)/src/Makefile.globalinclude$(top_srcdir)/contrib/contrib-global.mk

現在進行make,即可:

Shell
1234567891011121314151617181920 [postgres@localhost pgfincore-1.1.1]$makegcc-Wall-Wmissing-prototypes-Wpointer-arith-Wdeclaration-after-statement-Wendif-labels-Wmissing-format-attribute-Wformat-security-fno-strict-aliasing-fwrapv-g-O2-fpic-I.-I.-I../../src/include-D_GNU_SOURCE-c-opgfincore.opgfincore.cpgfincore.c:Infunctionpgsysconf:pgfincore.c:227:warning:implicit declaration of functionheap_form_tuple’pgfincore.c:227:warning:assignment makes pointer from integerwithoutacastpgfincore.c:Infunctionpgfadvise:pgfincore.c:477:warning:assignment makes pointer from integerwithoutacastpgfincore.c:Infunctionpgfadvise_loader’:pgfincore.c:710:warning:assignment makes pointer from integerwithoutacastpgfincore.c:Infunctionpgfincore:pgfincore.c:1016:warning:assignment makes pointer from integerwithoutacastgcc-Wall-Wmissing-prototypes-Wpointer-arith-Wdeclaration-after-statement-Wendif-labels-Wmissing-format-attribute-Wformat-security-fno-strict-aliasing-fwrapv-g-O2-fpic-shared-opgfincore.sopgfincore.o-L../../src/port-L../../src/common-Wl,--as-needed-Wl,-rpath,'/opt/hg3.0/lib',--enable-new-dtags[postgres@localhost pgfincore-1.1.1]$makeinstall/bin/mkdir-p'/opt/hg3.0/lib/postgresql'/bin/mkdir-p'/opt/hg3.0/share/postgresql/extension'/bin/mkdir-p'/opt/hg3.0/share/postgresql/extension'/usr/bin/install-c-m755pgfincore.so'/opt/hg3.0/lib/postgresql/pgfincore.so'/usr/bin/install-c-m644pgfincore.control'/opt/hg3.0/share/postgresql/extension/'/usr/bin/install-c-m644pgfincore--1.1.1.sqlpgfincore--unpackaged--1.1.1.sql'/opt/hg3.0/share/postgresql/extension/'[postgres@localhost pgfincore-1.1.1]$

實驗記錄:

1、安裝:

Shell
123456789101112131415161718 [postgres@localhost bin]$./psql psql(9.4.5)Type"help"forhelp.postgres=# create extension pgfincore ;CREATE EXTENSIONpostgres=# select * from pg_extension ;extname|extowner|extnamespace|extrelocatable|extversion|extconfig|extcondition-----------+----------+--------------+----------------+------------+-----------+--------------plpgsql|10|11|f|1.0||pgfincore|10|2200|t|1.1.1||(2rows)postgres=#

2、準備工作:記錄比較使用pgfincore前後的效能差,使用外掛pg_stat_statments記錄每條sql的使用時間。
其次將shared_buffer改為16mb,減少其對pgfincore的影響。

Shell
1234567891011121314 postgres=# create extension pg_stat_statements ;CREATE EXTENSIONpostgres=# select * from pg_extension ;extname|extowner|extnamespace|extrelocatable|extversion|extconfig|extcondition--------------------+----------+--------------+----------------+------------+-----------+--------------plpgsql|10|11|f|1.0||pgfincore|10|2200|t|1.1.1||pg_stat_statements|10|2200|t|1.2||(3rows)

3、建立表testmem,分別在使用和不適用pgfincore情況下進行select, update, delete的操作,並對比執行時間,在這裡為了更好的去作比較,建立三張表testmem1,testmem2,testmem3,分別進行三種操作進行對比。並插入相同的資料。

Shell
1234567891011121314151617181920212223242526272829303132333435 [postgres@localhost bin]$./psql psql(9.4.5)Type"help"forhelp.postgres=# dNo relations found.postgres=# create table testmem1(t1 int, t2 text, t3 text, t4 bigint, t5 text, t6 text, t7 varchar, t8 char(22), t9 numeric);CREATE TABLEpostgres=# create table testmem2(t1 int, t2 text, t3 text, t4 bigint, t5 text, t6 text, t7 varchar, t8 char(22), t9 numeric);CREATE TABLEpostgres=# create table testmem3(t1 int, t2 text, t3 text, t4 bigint, t5 text, t6 text, t7 varchar, t8 char(22), t9 numeric);CREATE TABLEpostgres=# insert into testmem1 select generate_series(1,999999), 'wangshuo'||generate_series(1,999999)::text||random()::text, generate_series(1,999999)::text||'sure',generate_series(1,999999), random()::text,random()::text,random()::text,'liuyuanyuan', generate_series(1,999999);INSERT0999999postgres=# select pg_relation_size('testmem1')/1024/1024||'MB';?column?----------166MB(1row)postgres=# insert into testmem2 select generate_series(1,999999), 'wangshuo'||generate_series(1,999999)::text||random()::text, generate_series(1,999999)::text||'sure',generate_series(1,999999), random()::text,random()::text,random()::text,'liuyuanyuan', generate_series(1,999999);INSERT0999999postgres=# insert into testmem3 select generate_series(1,999999), 'wangshuo'||generate_series(1,999999)::text||random()::text, generate_series(1,999999)::text||'sure',generate_series(1,999999), random()::text,random()::text,random()::text,'liuyuanyuan', generate_series(1,999999);INSERT0999999postgres=# select pg_relation_size('testmem2')/1024/1024||'MB'; ?column? ----------166MB(1row)postgres=# select pg_relation_size('testmem3')/1024/1024||'MB';?column?----------166MB(1row)postgres=#

三種操作效能對比:

Shell
1

相關推薦

利用系統快取提高PostgreSQL操作效率

環境介紹: OS:Centos 6.4 64bit Database:PostgreSQL9.4 Memory:2G CPU:1核 下載安裝: 在pgfoundry下載pgfincore-v1.1.1.tar.gz,,將原始碼解壓到資料庫原始碼下的contrib下。

oa辦公管理系統提高企業辦公效率

oa辦公管理系統,是面向組織的日常運作和管理,員工及管理者使用頻率最高的應用系統,自1985年國內召開第一次辦公自動化規劃會議以來,OA在應用內容的深度與廣度、IT技術運用等方面都有了新的變化和發展,併成為組織不可缺的核心應用系統。主要推行一種無紙化辦公模式。 PHPOA辦

利用jdbc操作資料庫——prepareStatement和Statement的比較以及利用batch模式提高效率的心得

1.prepareStatement   vs  statement (1)prepareStatement預編譯SQL語句,批處理效率高 什麼是預編譯,好處?(參考https://blog.csdn.net/Marvel__Dead/article/details/69

充分利用CPU快取記憶體,提高程式效率(原理篇)

提高程式效率應該充分利用CPU的快取記憶體。要想編寫出對CPU快取友好的程式就得先明白CPU快取記憶體的執行機制。  i5-2400S:       1、有三級快取分別為 32k(資料、指令快取分開,分為32k),256K,6144K(四個CPU之間共享);  

利用U盤裝Ubuntu操作系統

鏡像文件 啟動 啟動盤制作 http https 方法 利用 使用方法 href 所需要的工具 8G的U盤一個,用於制作啟動盤 Ubuntu鏡像文件。可以到Ubuntu的官網上下載。也可以到各大開源鏡像網站下載。這裏推薦清華大學開源軟件鏡像網站:https://mirr

各種引用方式提高string的操作效率

提高 public ring 引用 true 例子 set 引用類型 探討 眾所周知string的真身是具備值類型操作性質的引用類型,在本文中我們不去探討它的區別,為了方便描述,統一把string作為值類型來理解。 例子都基於: class Data

善用快取提高你的Spring工程效率

歡迎檢視Java開發之上帝之眼系列教程,如果您正在為Java後端龐大的體系所困擾,如果您正在為各種繁出不窮的技術和各種框架所迷茫,那麼本系列文章將帶您窺探Java龐大的體系。本系列教程希望您能站在上帝的角度去觀察(瞭解)Java體系。使Java的各種後端技術在你心中模組化;讓你在工作中能將Java各個技

如何通過TotalControl系統設定,提高電腦操作手機速度(教程)

TC 是一款將電腦和手機連線的應用軟體,若要達到 TC使用的最佳效能,則需對電腦/手機/軟體進行最優設定。 對於 TC傳屏和操控的速度快慢,主要受“手機加速,電腦加速,硬體加速”三方面設定的影響,同時還與畫質/解析度選擇有關。  工具/原料 電腦、手機、Total Contr

oracle 並行parallel操作,會大大提高sql執行效率

     如果伺服器存在多個cpu的話,我們就可以使用parallel進行並行執行某個查詢,插入操作的sql,這樣可以大大提高sql的執行效率,具體使用幾個並行的程序,可以設定process count = cpu count;      執行並行查詢,一種在直接在表中設定

如何高效地利用時間,提高工作效率

有朋友說忙忙碌碌一整天任務沒有完成,效率極低,不知怎麼提升工作效率。 今天將無數的時間管理技巧,總結成了這套「12345法則」,分享給你。 這套法則,大多數都是非常經典的技巧。但是,它們既容易上手,又切實有效。任何一個人,經過一段時間的練習,都可以掌握,並應用到自己的生活和工作中。 一、

(Linux)釋放系統快取操作

前言 在Linux系統中有先進的快取機制,會針對dentry(用於VFS,加速檔案路徑名到inode的轉換)、Buffer Cache(針對磁碟塊的讀寫)和Page Cache(針對檔案inode的讀寫)進行快取操作,有效縮短 I/O系統呼叫(比如read,w

利用redis快取對 list集合中的資料 進行分頁操作(一)

先說 儲存的結構:  這裡做了兩塊快取  綠色是儲存索引的快取  黑色是存資料的快取 翻頁時需要兩個引數  向上查詢/或向下查詢    還一個是   從第二頁開始查詢時需要一個索引的引數 有了這兩個引數 就可以利用redis 中提供的方法進行操作 第一個是 jedis.z

Linux性能優化實戰:如何利用系統緩存優化程序的運行效率?(17)

\n lar xtend 硬盤 ted tro hits 基於 roc 一、緩存命中率 1、引子 1、我們想利用緩存來提升程序的運行效率,應該怎麽評估這個效果呢? 用衡量緩存好壞的指標 2、有沒有哪個指標可以衡量緩存使用的好壞呢? 緩存命中率 3、什麽是緩存命中

go 自己封的postgresql操作

rep make query res urn mod .exe errors exe 1 package myDB 2 3 import ( 4 "database/sql" 5 "errors" 6 7 _ "g

五十個小技巧提高PHP執行效率(一)

雙引號 超時 而不是 也會 per 遠程 設置 作用 我們 在項目開發過程中,經常遇到了一些PHP處理程序性能底下的情況,程序運行在centos+nginx環境,雖然這個有很多的原因如:服務器本身配置,運行環境nginx服務,php-fpm配置等等,更多有一點仍然是PHPe

怎樣利用JDBC連接並操作Oracle數據庫

eat man dex 關閉 gets 防止 數據 null 找到 之前學習.NET的時候。以前利用ODBC進行連接數據庫,而在Java中通常採用JDBC連接數據庫,這裏以oracle數據庫為例簡單的總結一下利用JDBC怎樣連接並操作數據庫。 1、連接 public c

幾款實力很強的小工具,提高Windows使用效率

log 重復 mark 自己 是我 需要 界面 詳細 選擇 如果你說我會用Windows,許多人會說,切,誰不會用Windows啊? 接下來說說我在Windows環境下,如何使用一些工具,提高效率。這些工具是我過去這些年雪藏的,今天放出來曬一曬。 當我要搜索文

利用SQL索引提高查詢速度

code 創建索引 nbsp 存儲 test 約束 soft 讀取 select 1.合理使用索引 索引是數據庫中重要的數據結構,它的根本目的就是為了提高查詢效率。現在大多數的數據庫產品都采用IBM最先提出的ISAM索引結構。 索引的使用要恰到好處,其使用原則如下:

從零開始學Linux系統之Vi/Vim操作

命令模式 nmap 快捷 大小 users vim 修改 忽略大小寫 unmap vi/vim:編輯模式 <-:—-命令模式 —-a、i、o A、I、O —> 插入模式 設置行號 :set nu :set nonu 行號移動: gg G nG/

公司管理軟件真的可以提高企業辦公效率嗎?

對於企業來說,日常的辦公,像考勤、內部通告、工作總結等,是每個企業必須的工作,但是傳統企業中,這些日常辦公沒有辦法集中管理,需要多個平臺切換,不利於員工辦公,更是給企業管理造成了困難,其實,要想實現日常辦公的統籌化管理,不用擔心,公司管理軟件就可以辦到。 1、所有日常辦公,統籌