顯示具有 PG性能與各DBMS差異性 標籤的文章。 顯示所有文章
顯示具有 PG性能與各DBMS差異性 標籤的文章。 顯示所有文章

2009-04-25

PostgreSQL vs Oracle - IBM利用EntepriseDB技術 蠶食Oracle客戶

EnterpriseDB 是將 BSD 授權的 PostgreSQL 包裝成商業產品的公司, 也是 PostgreSQL 開發者團隊中主力的貢獻來源之一, 詳情可參考本社群較早前的文章:

宣布 EnterpriseDB 與IBM的合作,其中包括最近發布的的 EnterpriseDB Advanced Server 8.2 Linux 在 IBM Z系統大型主機,以及提供的 EnterpriseDB Advanced Server for AIX 系統的 IBM System P Server。

從 Oracle 牽移到相容度與可靠性如同 Oracle 的 PostgreSQL, 能對企業節省多少錢呢 ? 來看看 EnterpriseDB 做的整理:

相了解更多可以參考下頁:
http://www.enterprisedb.com/solutions/ibm_db2_license.do

賽迪網訊 4月24日, News:
甲骨文(Oracle)宣佈收購 Sun 後,IBM 將利用資料庫庫軟體廠商 EntepriseDB 的技術蠶食甲骨文的客戶。據國外媒體報導稱,EnterpriseDB發言人稱,甲骨文應用軟體可以不加修改地在該公司的 PostgresPlus 上運行


IBM 資料庫業務副總裁阿溫德·克里須那表示,現在,甲骨文的應用軟體也可以在 DB2Release9.7上運行了,「利用 EnterpriseDB 的移植工具,精通甲骨文技術的資料庫管理員將能夠使用 DB2.資料庫。EnterpriseDB 的技術使甲骨文的 PL/SQL 查詢和預儲程序可以在 DB2 系統上運 行。」



EnterpriseDB 首席執行官愛德華·博亞簡表示,IBM 使用該公司的甲骨文相容性技術是「對其技術的認可。」
- 来源: 赛迪网 作者:刘彦青



相關新聞:
http://www.enterprisedb.com/company/news_events/press_releases/03_25_08a.do
http://www.theregister.co.uk/2008/04/07/ibm_enterprisedb_stake/

2008-10-04

java.sql.PreparedStatement的方法測試-對應PostgreSQL JDBC4

測試類別: java.sql.PreparedStatement
測試目標: setBinaryStream()
測試jdk: jdk1.6.0_10
測試選擇資料庫:PostgreSQL 8.3.3
測試資料庫對應之JDBC: postgresql-8.3-603.jdbc4


測試原始碼:

package zasax.test;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import zasax.conn.PostgreConnection;

/**
*
* @author YiCheng,Hsiao
*/
public class PreparedStament_SetBinaryStreamTest {

private Connection conn;
private PreparedStatement pstmt;
private String setSQL = "Insert into checktest (\"binary\") values (?)";

public static void main(String[] args)
throws IOException, ClassNotFoundException, SQLException {
PreparedStament_SetBinaryStreamTest psst =
new PreparedStament_SetBinaryStreamTest();
psst.setBinaryStreamValue();
}

public void setBinaryStreamValue()
throws IOException, ClassNotFoundException, SQLException {
PostgreConnection pc = new PostgreConnection();
this.conn = pc.getConnection();
this.pstmt = conn.prepareStatement(setSQL);
//pstmt.setBinaryStream(1, new ByteArrayInputStream(new byte[10]));
//pstmt.setBinaryStream(1, new ByteArrayInputStream(new byte[10]), 10);
//pstmt.setBinaryStream(1, new ByteArrayInputStream(new byte[10]), 10l);
pstmt.execute();
pstmt.close();
conn.close();

}
}

setBinaryStream() 在Java SE API 的內容:

setBinaryStream

void setBinaryStream(int parameterIndex,
InputStream x)
throws SQLException
將指定參數設置為給定輸入串流。在將一個非常大的二進制值輸入到 LONGVARBINARY 參數時,通過 java.io.InputStream 物件發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

註:查詢 JDBC 驅動程序文檔,以確定使用帶 length 參數的 setBinaryStream 是否更有效。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含二進制參數值的 java 輸入串流
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;
如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setBinaryStream

void setBinaryStream(int parameterIndex,
InputStream x,
int length)
throws SQLException
將指定參數設置為給定輸入串流,該輸入串流將具有給定位元組數。
在將一個非常大的二進制值輸入到 LONGVARBINARY 參數時,
通過 java.io.InputStream 物件發送它可能更為實際。
將根據需要從串流中讀取資料,一直讀取到檔案末尾。

註:此串流物件既可以是一個標準 Java 串流物件,

也可以是實作標準介面的使用者自己的子類別。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含二進制參數值的 Java 輸入串流
length - 串流中的位元組數
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;
如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setBinaryStream

void setBinaryStream(int parameterIndex,
InputStream x,
long length)
throws SQLException
將指定參數設置為給定輸入串流,該輸入串流將具有指定位元組數。
在將一個非常大的二進制值輸入到 LONGVARBINARY 參數時,
通過 java.io.InputStream 物件發送它可能更為實際。
將根據需要從串流中讀取資料,一直讀取到檔案末尾。

註:此串流物件既可以是一個標準 Java 串流物件,

也可以是實作標準介面的使用者自己的子類別。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含二進制參數值的 java 輸入串流
length - 串流中的位元組數
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;
如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
從以下版本開始:
1.6




setBinaryStream()方法所印出結果:
setBinaryStream(int parameterIndex, InputStream x ) throws SQLException


setBinaryStream(int parameterIndex, InputStream x, int length ) throws SQLException


setBinaryStream(int parameterIndex, InputStream x, long length ) throws SQLException

結論:
確認環境為postgresql-8.3-603.jdbc4及jdk1.6.0_10,而setBinaryStream(int, InputStream) 及 setBinaryStream(int, InputStream, long)所拋出的未實作的完成的異常,而拋出異常的位置為org.postgresql.util.PSQLException,表示setBinaryStream(int, InputStream) 及 setBinaryStream(int, InputStream, long)在PostgreSQL JDBC中還未實作出來,所以要使用setBinaryStream()方法時,還是得透過setBinaryStream(int, InputStream, int)。

2008-02-04

PostgreSQL 獲選 Developer.com 2007年度資料庫領域首獎

原文來自:
Winners of the Developer.com's Product of the Year 2008 Are Announced
http://www.developer.com/design/article.php/10925_3721761_1

本文:
Developer 網站每年均會進行對開發者們的投票評選活動 ...
Developer 網站就技術、框架、開發工具、開發輔助工具、
Web Service 開發工具、無線/移動開發工具、資料庫工具、
Java工具、.Net工具、開放源始碼工具等幾大方面作出了評選。



2007年度最佳的IT產品及技術中
PostgreSQL 獲選 Developer.com 2007年度資料庫領域首獎.

Database Tool or Add-in

入圍者包括:

  • Hibernate
  • Java DB
  • MySQL
  • Oracle Database 10g
  • PostgreSQL
中譯評論:
獲得贏家的是 PostgreSQL。這一個是令我們吃驚的,而且傳達了一些訊息給我們的讀者群眾。我們需要把任務工作做得更好更棒,這點涵蓋這個話題! postgresql.org 推出的這產品稱為"世界上最先進的開放源始碼資料庫系統" ,看到這獎項的投票成績,他們的產品和工作態度是正確的。
(評論原文:
And the winner is PostgreSQL. This one surprised us and taught us something about our audience base. We need to do a better job of covering this topic! Postgresql.org touts this product as "The world's most advanced open source database" and after seeing the votes, they may just be correct.)

其它的獎項分別為:
  • Technology : AJAX
  • Framework : Sun Microsystems's JavaTM Platform, Standard Edition 6 JDK
  • Development Tool : NetBeans IDE
  • Development Utility : Mozilla's Firefox®
  • Web Service Development Tool or Add-in : GoogleTM Maps.
  • Wireless/Mobile Development Tool or Add-in : NetBeans Mobility Pack.
  • Java Tool or Add-in : NetBeans IDE.
  • JSR (Java Specification Request) : 223: Scripting for JavaTM Platform.
  • .NET Tool or Add-in : Glassfish Web Services Interoperability.
  • Open Source Tool : Subversion
從 2005年至今,Java獲得大勝,一改 2005年之前 Java 只是略微領先 .Net 的局面。

延伸閱讀(Link):
PostgreSQL 官方新聞稿: http://www.postgresql.org/about/news.914

2008-01-05

從 MySQL 遷移到 PostgreSQL 專題教學(一)

更新:2007-01-04
對映章節:

內容:
如何從 MySQL 快速的遷移到 PostgreSQL, 若是一個新的專案,
那最大的問題點應該是在於這二個資料庫對資料表的定義方式不同之處...

小郭這次拿著 l2j server (天堂二) java即時遊戲伺服器專案
的 sql 檔來做個分析報告給各位參考和教學.
l2j 專案目標為純粹使用 java 來實作改寫
多人即時的NC Soft 公司的 天堂II 3D 遊戲伺服器
,
預設的後端資料庫採用 MySQL, 但因其使用 JDBC 固在遷移 DBMS 時變的輕易 ...
所以囉~少說就有近 50 張資料表 SQL 和萬筆的 Data 要倒到資料庫裡啦 ...

@@"...(開玩笑~您以為線上遊戲公司不豐富遊戲內容~您會付錢玩嗎~呵)

幸好在龐大 pgFoundry 250多個與 PostgreSQL 應用有關的子專案中,
活躍著這個 script 專案開發:
mysql2pgsql http://pgfoundry.org/projects/mysql2pgsql/
看專案名不難了解他就是用來轉換 MySQL 到 PostgreSQL 的 sql 轉換工具,
不到幾 KB 的大小, 但卻是以最強悍的文字處理語言的 Perl 撰寫而成

2007年三月本社群的文章
mysql2pgsql :給 MySQL 用戶遷移至 PostgreSQL 的轉換程序稿本

使用方式最簡易的做法就如下的操作方式(請確定您的系統裡有駱駝哦~'Perl')
$ perl mysql2pgsql.perl [mysql.sql] [pgsql.sql]
[mysql.sql] : 代表您取得的 MySQL 使用的 sql 文件檔
[pgsql.sql] : 代表您轉換後要建立的檔案名稱

我們來經由實際演練自動轉換後的 SQL 內容來比較差異點並補充說明
先拿最小的 sql 檔開刀 (玩家登入帳號管理資料表)
$ perl mysql2pgsql.perl l2jdb_login_account.sql l2jdb_login_account_pg.sql

MySQL: l2jdb_login_account.sql
CREATE TABLE `accounts` (
`login` VARCHAR(45) NOT NULL default '',

`password` VARCHAR(45) ,

`lastactive` DECIMAL(20),

`access_level` INT,

`lastIP` VARCHAR(20),

PRIMARY KEY (`login`)


PostgreSQL: l2jdb_login_account_pg.sql
CREATE TABLE "accounts" (
"login" VARCHAR(45) NOT NULL default '',
"password" VARCHAR(45) ,

"lastactive" DECIMAL(20),
"access_level" INT,

"lastip" VARCHAR(20),

primary key ("login")


差異點:

  1. PostgreSQL 對自定字串用雙引號標記 " ".
  2. DECIMAL 型別名稱雖然相同, 但這是 PostgreSQL 對其'包容'的作法,
    執行 SQL 後套用正式 PG 對等功能的型別 numeric(20,0).
  3. VARCHAR, INT 透過映射(mapping)成 PostgreSQL 的正規型別名稱, 分別為:
    'character varying' & 'integer'.

來看看更完整的圖例說明, 執行後對 MySQL 包容性的轉換, 減低您遷移上的疑慮...


這回順利成功, 下回我們將進行大規模的手術囉~呵

延伸閱讀(Link):

2007-11-02

PostgreSQL VS MySQL 效能的新比較(FreeBSD 7)

更新:2007-11-02
對映章節:
Introducing FreeBSD 7.0 (PDF 檔)

內容:
這是來自 FreeBSD 的效能報告圖...











延伸閱讀(Link):

2007-08-26

為什麼 PostgreSQL 足以替代 MySQL

更新:2007-08-28(Update:3)
2007-08-26 (感謝本文的熱心朋友回應)
對映章節:
http://developer.postgresql.org/index.php/Why_PostgreSQL_instead_of_MySQL

內容:
以下內容來自 PostgreSQL 國際官網上的wiki的翻譯內容

12 顆銀彈: PostgreSQL 打擊 MySQL

  1. 一個完全整合進核心(內核, core)的資料庫引擎

  2. 在全部環境之下都擁有健全的 ACID 事務交易(transactional)行為
    (Wiki::ACID)

  3. BSD 授權協議明白地證明它是開放源碼(open-source softwares)

  4. 目標就是一定要與 SQL:2003 相容
    (Wiki::SQL:2003)

  5. 開發者對於程式碼的品質,正確性及測試有著相當的狂熱

  6. 未定義或不支持的操作一定不會一聲不響地就造成錯誤
    (即一定會給出適當的錯誤信息,而不是毫無提示地操作失敗)。

  7. MVCC讓你的資料永遠保有一致性
    同作控制(Concurrency Control) - 簡介

  8. 複雜的 Join (結合)會盡可能自動地處理

  9. 就是被設計來給必須承受大量連續性(讀/寫)資料的使用者

  10. 事務交易式(Transactional) DDL 讓你安全地修改資料庫

  11. 有多種成熟的伺服器端程式設計選擇

  12. 從使用者到核心團隊都是最棒的社群支持者
延伸閱讀(Link):
Why PostgreSQL Instead of MySQL: Comparing Reliability and Speed in 2007.
Transactional DDL in PostgreSQL: A Competitive Analysis.

2007-08-02

MySQL 的私有化掌控(摘自:Linuxpilot VolL59)

更新:2007-08-02
對映章節:
Linuxpilot 國際中文版 Vol.59 關於 PostgreSQL 文摘(二)
軟體 人性 見聞錄 (阿益心得文摘)

內容:
這是這篇文章中的說明(阿益只是貼上來哦)

MySQL, 就是真正有目的, 有原因的私有化,
所有的原程式碼都保證只由少數人編寫,
並經領導者控制, 預留空間可作為隨時更改授權的後著....

這段話也許可以讓您體會背後的優缺點...
留下伏筆給大家自行思考更嚴重的問題...


延伸閱讀(Link):
Linuxpilot 國際中文版 Vol.59

2007-06-25

PostgreSQL,MySQL與Firebird三者的性能徹底大比較

更新:2007-06-25
文章轉自:日本ITpro
「MySQL,PostgreSQLとFirebirdの性能をユーザー会メンバーが徹底比較,判明した"意外な結果”」---OSC2007.DBより


內容:
日本6月23日 2007.DB(OSC2007.DB)大會主題本次針對三大開源碼資料庫系統 PostgreSQL,MySQL 與 Firebird 三者的性能徹底大比較, 邀請了在日本此三大非營利法人團體的技術主導員與各愛好者共同參與。

(會場現況)


(三大方代表人)
左起日本MySQL-堤井泰志氏,Firebird日本-木村明治氏,日本PostgreSQL-岡裕生氏


主要比較基準:
單機 2.4GHz 的 Pentium4,1G-RAM
IDE ATA100 7200rpm 60G硬碟
資料庫系統平台
MySQL 5.0.6-beta(使用 InnoDB),PostgreSQL 8.1,Firebird 2.0.1。


證明的結果,PostgreSQL 打破以往人們對 MySQL 擁有快速的 SELECT 的概念, 在以下的統計圖表中。這主要的原因在於 MySQL , 對於具有事務交易的引擎 InnoDB 開發與效能未能如 PostgreSQL 的成熟發展, MySQL 主要強項仍為早年發展至今的的 MyISAM 缺省引擎(但不具事務交易功能)。另外 Firebird 是高速超越整體與 MySQL 和 PostgreSQL 的比較。但是 "MySQL 和 PostgreSQL 能承受同時 500 連接數或更多量的訪查"。








如何選擇適合的後端資料庫...
如上述的測試結果, 三者各具所長, 在客戶端(Client)連結數同時連結到DB Server少於 500的情況下, Firebird 確實提供最快速的回應首選, 但若 Client 連結數同時量高達 500時, 使用 PostgreSQL 或者 MySQL 會比 Firebird 來的適合.
但若更加考慮大環境是否重視資料嚴謹度與是否需要事務交易功能者, 此時針對大多數時間僅提供查詢為主要任務者, 仍建議採用 MySQL(MyISAM:無事務交易功能) 效率比 PostgreSQL 好, 但若使用在類似 ERP 等高度重視資料正確性的情況下使用 PostgreSQL 絕對比使用 MySQL(InnoDB:事務交易功能)來的更棒.

延伸閱讀(Link):

2007-04-07

EnterpriseDB 獲選為Linux商業應用大獎-最佳企業級資料庫

更新:2007-04-07
對映章節:

內容:
EnterpriseDB 是一家將 PostgreSQL 商業化的資料庫公司,
在每年 Linuxpilot 華人雜誌公司都會舉辦 OSS 商業應用大獎,
EnterpriseDB 在本次 2007 年獲選為最佳企業級資料庫.

.....

在文中訪問了 EnterpriseDB 公司,
更提出了為何能成為最佳企業級資料庫的證明:

  1. 從 Oracle 資料庫遷移到 EnterpriseDB 高達 90% 不需要修改程序.
  2. 從 Oracle 轉換到 EnterpriseDB 後的系統效能, 可提升 50%~100%.
  3. 完全基於 PostgreSQL, EnterpriseDB 僅為商業化更多 Utility 與提供技術服務.
  4. 最佳的例證: SOE(Sony Online Entertainment)公司, 全面替換 Oracle 資料庫系統成 PostgreSQL 在線上遊戲伺服主機上, 理由是 Oracle 龐大的授權成本與無法完成建置自訂化的系統修改權, PostgreSQL 因其為 BSD 授權, 比 GPL 更為自由, 且能自主商業化產品.



延伸閱讀(Link):

2007-03-29

PostgreSQL 效能評估工具 pgbench (上)

更新:2007-03-29
對映章節:

內容:
pgbench 是被 PostgreSQL 作為性能基準檢查測試(Benchmark)用的程序,與 PostgreSQL 源代碼一起被散佈。在這篇我來對 pgbench 和關於基準測試做概要解說。

(日本)石井達夫 先生與 pgbench
為了能進行 PostgreSQL 的基準測試的程序由 石井達夫 先生寫了 pgbench 程序遞交給 PstgreSQL 並與實體源代碼一同被散佈。
主要用來對 Server 方面 Databases 的基本的基準把能用的 TPC-B 做為基礎製作,以每 1秒鐘能實行的事務交易(transaction)數來判斷性能。主要特徵,能模擬多用戶環境,能容易同時試驗連線環境。同時,移植性高,安裝也簡單.

pgbench 在 PostgreSQL 解壓後的源代碼包的目錄內的 contrib/pgbench 裡存在。因此,不需要重新取得。 能做以 contrib/pgbench 移動,以 DBA 權限編譯·安裝。
(在 Win32 - PostgreSQL 8.2+ 其指令已內附在 \bin 之內 pgbench.exe )

pgbench 的使用順序

要啟動 pgbench 命令如下:

$ pgbench -option database_name

同時,pgbench 要進行基準測試,必須照以下的步驟:

  1. 做資料庫的初始化→ 基準測試使用的資料庫的作成。
  2. 指定基準測試的實行→各種各樣的條件,實行基準測試。
選項的指定
對 pgbench,有指定為啟動的時候的各種各樣的選擇。在這裡,只使用 pgbench 上重要的選項摘錄介紹。
  • -h :PostgreSQL(postmaster)啟動的主機名。到省略的時候 Unix domain socket 連接給自主人。
  • -U :用戶名.
  • -p :PostgreSQL(postmaster)啟動的端口號。與省略的時候 PostgreSQL(postmaster) 默認使用的 5432端口被指定了的東西被看作。
  • -i :初始化為基準測試使用的資料庫。
  • -s [定標係數] :初期化為資料庫的時候使用,[定標係數]*10萬筆的資料被製作。被省略的時候等同 1指定。
  • -c :同時實行的客戶端數。被省略的時候與 1相同。
  • -t :一個客戶端指定實行的 transaction 數。被省略的時候與 10 是相同。
  • -S :這個選擇的話進行檢索處理的試驗。其他的處理不被進行。
  • -N :這個選擇的話從通常的試驗省去了一部分的更新處理的試驗被進行。
  • -d :這個選擇的話,試驗的流逝等各種各樣的信息被表示。可是,為了在大量裡(上)表示信息的處理被進行,多少試驗結果惡化了。
舉例:
$ pgbench -i -U postgres -s 10 test

說明:
初始化創建基準測試用資料表在用戶"postgres"的"test"資料庫裡, 且"accounts"資料筆數創建 10*10萬筆資料.

下圖是執行上述命令後產生的 4個資料表和資料筆數(點圖放大)




延伸閱讀(Link):
http://www.techscore.com/tech/sql/pgbench/index.html

PostgreSQL 大型物件 BYTEA vs OID

更新:2007-03-29
Source : PostgresDAC

內容: (翻譯未校稿完)
PostgreSQL 大型物件(Large Objects) BYTEA vs OID

名詞:Binary Large OBjects (BLOBs)

在 PostgreSQL 有二種方式用來存放二進制大物件(BLOBs)。首先, 是使用 bytea 類型。第二是, 將使用大物件(Large Objects)的原有能力。

BYTEA 類型

BYTEA 類型或二進制串與簡單的字符串是非常相似, 像 varchar 和 text。但是, 他們由二個特徵上的區別:

  1. 二進制串具體地准許存放八進制值零和其它"非可印的" 八進制(通常, 八進制在範圍 32 到 126 之外) 。字符串禁止零的八進制, 和並且禁止的八進制值所有其它八進制值和序列是無效達成協議對資料庫的選擇的字符集合內碼。
  2. 操作在二進制串處理實際位元組(byte), 但是處理字符串取決於地點設置。在短, 二進制串是適當的為存放程式員作為"未加工的位元組" 認為的資料, 但是字符串是適當的為存放 text。

Similitude 意味, BYTEA 價值將包括對結果資料, 可以成本效率。換句話說, PostgresDAC 當地將裝載所有資料從伺服器並且用戶然後能工作與它。

開發商必須並且記住寄發 BYTEA 值到伺服器, 八進制某些值必須逃脫。總之, 逃脫八進制, 它被轉換成它的小數八進制價值三數字的八進制數等值, 和由二條斜線在之前, 即。 ' \\xxx '因而在最壞的文件資料的大小被送通過網路也許被增加很多。

OID 類型(大物件)

PostgreSQL 有一種大物件設置, 提供串流形式(Stream-style)存取對於使用者資料被存放在一個特別的大物件結構中。串流中的存取是有效的當工作以太大的以至於不能方便地操作整體上的資料值時。

所有大物件被安置在一張唯一系統表叫做 pg_largeobject 。PostgreSQL 並且支持存儲系統叫做 "TOAST" 那自動地存放每個表值大比唯一資料庫頁入一個間接儲藏區域。這使大物件設施部份地過時。大物件設施的一剩餘好處是, 它提供價值 2 GB 在大小, 但是 TOAST 的欄位可能是在多數 1 GB 。並且, 大物件可能任意地被修改使用比進行這樣操作高效率的使用 TOAST 的讀寫 API 。

大物件實施打破大物件"大塊(chunks)" 和存放大塊在列在資料庫。B-tree 索引保證快速的查尋正確大塊數字當做隨機存取讀和寫。

它是可能的, pg_largeobject 表將舉行一些物件資料, 但它也許不被使用任何地方在資料庫。沒有暫時修造在方法去除這 ghosts, 依照被指出在 PostgreSQL 幫助。但有想法, 這也許由 VACUUM 命令做。但是, 這種功能不被實施。

比較表

特徵
BYTEAOID
最大允許的空間 1 GB 2 GB
資料存取 整體上 Stream-style
儲存
在被定義的表裡 在 pg_largeobject 系統表裡
資料操作 使用 SQL 和脫逸的 sequnces 只在事物交易區塊之內由特別函數
載入
預先 在要求時


延伸閱讀(Link):

2007-03-28

關聯式資料庫系統(RDBMS)的家譜圖

更新:2007-03-28
對映章節:
http://mira.sai.msu.su/~megera/pgsql/

內容:
一張很有趣的圖~(點圖可放大)




延伸閱讀(Link):

2007-03-25

PostgreSQL 擁有勝過所有DBMS的高度客製化特點

更新:2007-03-25
對映章節:V

內容:
PostgreSQL 是目前支持最多編程語言(Server-side Progremming)的 DBMS, 支持高達 10種以上編程語言的高度客製化 DBMS, 換句話說您可以使用您熟悉的程序語言來構建"預儲程序(Stored Procedures)置於 DBMS 中, 相對其它 DBMS 僅提供自家專屬的語言, 就失色許多.
您可以使用包括:

  1. PL/Java
  2. PL/Perl
  3. PL/PHP
  4. PL/Python
  5. PL/Ruby
  6. PL/R
  7. Tcl
  8. C/C++
  9. PL/Proxy (Skype 公司貢獻)
  10. PL/pgSQL (自帶編程語言相仿於 PL/SQL, 讓您易於在 Oracle 間替換.)
    包括有它的標準子例程程式庫範圍從基本的算術和串操作對密碼學和 Oracle 兼容性的上百內部函數。觸發器和被存放的規程可能被寫在 C 和被裝載入資料庫作為 Library , 允許偉大的靈活性在擴大它的能力。

客戶端 API(Application Programming Interfaces)
正因許多語言被 PostgreSQL 支持, 並且有著許多 Library API, 允許各種各樣的語言被編寫和被解釋對接口與PostgreSQL 。

* DBD::Pg - Perl Driver
* JDBC - JDBC Driver
* libpqxx - C++ API
* Npgsql - .Net Data Provider
* ODBC - ODBC Driver
* PgOleDb - OLE-DB Driver
* pgtclng - Next generation interface for TCL
* Pgtcl - Tcl binding library
* Pgin - A Tcl interface to PostgreSQL written in Tcl
* PyGreSQL - Python interface for PostgreSQL
* psycopg - Another Python interface for PostgreSQL

延伸閱讀(Link):

2007-03-17

PostgreSQL 整體擁有成本(TCO)

更新:2007-03-17
對映章節:

內容:
在 Microsoft SQL Server 2005 的網站
看到了這頁 => "比較資料庫" 或許可以提供您另類對 PostgreSQL 的評估
下面這張圖來自 Microsoft - 整體擁有成本(TCO)


問題來了...

  • 這張圖表示 MS SQL 2005 只有基本功能? 還是其它比不上 O & I ??
SQL 2005 也要 25K, 那您也許可以選擇
功能與 HA 架構雷同 Oracle 最頂級的 304K的產品,
TCO 卻可以近乎 0 K 的 PostgreSQL.

2007-03-03

日本-IPA OSS: PostgreSQL 的性能不再是議題

更新:2007-03-03
原文:2007-02-07
「PostgreSQLは16CPUまでスケール,もう性能はOSSミドルの課題ではない」
---IPA OSSセンターが検証データ公開

內容:(日翻中, 翻的不好請指正)
"PostgreSQL的規模測試, 在 16 路 CPU 下性能已經不是開放源代碼軟體的課題"
---IPA OSS中心驗證數據公開

「最新版的 PostgreSQL 16 路 CPU 比例圖 (CPU數有比例性能提高)。性能已經不是開放源代碼· IPA 的課題」---獨立行政法人資訊處理推進機構(IPA)2月7日, 公開了開放源代碼·軟體·中心(OSS中心)實施了的「OSS性能·可靠性評價項目」的結果。

PostgreSQL的可擴展性。評估使用 DBT-1 (網路書局的Transaction)的測試基準


MySQL 5.0大規模資料庫對應。對約 100GB 的資料庫的 DBT-1(Transaction)基準


 可擴展性評價, 利用了 The Linux Foundation 開發的工具 DBT-1。是模擬線上書局的基準工具。測試基準, 在評價的時候以最新版的 PostgreSQL 8.1 patch 版本。「作為現在的最新版的 8.2 基準」(IPA OSS中心研究員日立製作所的鈴木友峰先生)。2005年把 8.1 作為對象實施了的評價到 8 路 CPU 以外比例圖沒做, 此次的評價到 16 路 CPU 比例尺做的事被確認了。因為是 lock 關聯的瓶頸被解除了。

 根據能得到了有關 MySQL 5.0, 基於施給恰當的調校的後, 100GB 的大規模資料庫也能獲得這樣的結果。但默認設定值實用的性能不能得, 調校不可缺少。作為在多重處理器環境, 可認可的只有MySQL 5.0.32 - 4 路 CPU 比例尺做的測試。

PostgreSQL 的叢集(clustering)工具 Slony-I 和 pgpool 的評測


 PostgreSQL 的 叢集(clustering)工具的驗證也進行了。使用pgpool的話以, 2台能得到了最大約 4倍的檢索性能。

 有關 Java 應用服務器, 實施了 JBoss, Gernomino 的 clustering 機能等的評價。據說明白了如果 JBoss 用 8 台構成進行性能評價, 使用了 session 複製機能(Buddy Repulication)也根據台數的性能提高能圖謀的事。在 JBoss 的評價時, 開發了對數(記錄)分析工具 JBoss Profiler 的擴張工具。使得負荷很輕, 實在運用也能取得對數(記錄)。JBoss.叫在 org 網站被公開的預定。

JBoss 4.0和 Tomcat 5.5clustering 評價。在 8台構成的可擴展性


 進行了所說的對確認 Geronimo 1.1上下文水平的設定連鎖障礙的時候 session 不承繼這樣的問題 wo, Geronimo 項目報告的受地方自治團體的影響。

於 WAScluster 的 Geronimo 1.1 做的可靠性評價項目


 從這些的驗證結果, OSS 中心的鈴木先生認為:
「性能已經不是開放源代碼的議題」。更重要的是, 對高負載, 大容量的系統 te , 瓶頸分析和調校是不可缺的。

 評價結果,IPA OSS中心公開的開放源代碼信息數據庫「iPedia」公開著。

 評價專案, 由 SRA OSS日本分公司, NTT數據尖端技術, 住商信息系統, 日本惠普, 野村綜合研究所, 日立系統 and 服務, 日立製作所, 奇蹟·LINUX,yuniadekkusu 擔任。

2007-03-02

Sun-PostgreSQL 勝利獲得 Oracle 的客戶

更新:2007-03-02
對映章節:[新聞]2007-02-22
LinuxWorld : Sun-PostgreSQL win takes swing at Linux, Oracle



內容:
(擷取相關重點如下)
SUN 在2005 年底時, 宣佈它的意圖貢獻並支持開放來源碼的 PostgreSQL 資料庫在它的旗艦產品 Solaris 10 作業系統上, Sun Microsystems 的發佈勝利獲得了 Linux 和 Oracle 的顧客。

SUN 發表了一份文件在網站上, 公司概述一客戶從 ORACLE 到 PostgreSQL 資料庫和起因於一個未通過的測試項目使它選擇了 Solaris 10 而結束 Linux。

這個顧客, 是"一家大資料庫行銷公司", 是基於開放源碼 Maryland-based顧問 OmniTI.

在它的報告中, SUN 宣稱 OmniTI 的遷移從自有的應用程序到 PostgreSQL 替它的顧客由"受到軟體成本扶搖直上威脅" 的資料庫給了警示。

該公司現有近一半TG(terabyte)的 OLTP 資料在尖峰時每秒有 10,000 筆事務交易並且它的資料倉儲消耗 1.2 TG(terabytes)的資料。

"要求稱對 OLTP 和資料倉庫操作的自有的資料庫申請依據應用的每 CPU 數執照會是極端昂貴的," SUN : "這個開放來源碼 PostgreSQL 資料庫應用, 另一方面, 沒有使用執照的成本。"

連結: PostgreSQL for Solars 10

2007-02-28

PostgreSQL 擁有對 ISO/IEC SQL:2003 最多項的標準相容順從

更新:2007-02-28
對映章節:VIII,D

內容:
SQL 標準的正式名稱是 ISO/IEC 9705 "Database Language SQL"
最近的一個版本是在 2003 年稱作 ISO/IEC 9075:2003,或者簡稱為 SQL:2003。這個版本之前的是 SQL:1999SQL-92
每個標準都代替了前面那個,所以聲稱相容早期版本沒有什麼官方的好處。 PostgreSQL 的開發力圖瞄準相容標準最新的正式版本,只要這樣的相容不會和傳統的特性或者常識衝突。 許多 SQL:2003 要求的特性都已經得到了支援,只是有些時候函數的語法略有不同。 更多有關標準相容的特性將在未來的版本裡看到。

註:在 8.3 版將加入完整對 ISO/IEC 9075-14 XML-related specifications/XML 相關的規範 (SQL/XML) 的支持能力。

PostgreSQL 支援大多數 SQL:2003 的主要特性。
在總共 164 個強制性要求完全相容的核心特性裡, PostgreSQL 遵循至少 150 個。
另外,PostgreSQL 還支援一長串可選的特性。
值得一提的是,在我們寫這些的時候,沒有任何目前版本的資料庫管理系統聲稱支援全部核心 SQL:2003。

在下面的連結, PostgreSQL 完整的透明化公開說明了當前版本 PostgreSQL 對 SQL 的相容與不順從的整理表:
Features-sql-standard
Unsupported-features-sql-standard

2007-02-26

PostgreSQL - 當前主要特點(簡報用)

修訂:2007-03-05

PostgreSQL features

主體:

  • Transactions
  • Subselects
  • Views
  • Foreign key referential integrity
  • Sophisticated locking
  • User-defined types
  • Multi Server-side Languages support (PL/pgSQL, Java, Perl, Ruby, C/C++, ....)
  • GIS data types <===特有的地理性資料類型庫
  • Inheritance <== 被稱為"物件"關聯資料庫系統(O-RDBMS)的主因
  • Rules
  • MVCC(Multiple-version concurrency control)
  • WAL(Write-Ahead Log)
  • Native Microsoft Windows version
  • Table spaces
  • Ability to alter column types
  • PITR(Point-in-time recovery)
  • XML (8.3 Dev)
  • Native GUI Admin Tool (support Slony-1)
8.2 Add
  • Improved Warm standby databases
  • Online index builds
  • SQL2003 aggregates
  • Improved TSearch2 with Generalized Inverted Indexes(GIN)
  • Support for DTrace probes
  • Advisory Locks
  • New ISN/ISBN and pgCrypto modules
  • Selective pg_dump options
HA(High-Availability)
  • Higher performance (+20% on OLTP tests)
  • Slony-1 複寫叢集系統
  • pgmemcache 記憶體快取機制
  • pgCluster 同步多主點叢集系統
  • pgpool-II 連結池實作, Fail-Over(熱備援), 複寫機制叢集

2007-02-25

Tweaker.net - PostgreSQL 與 MySQL 效能報告

這是 Tweaker.net 對二個開源碼的資料庫系統做的
效能測試報告:
PostgreSQL 8.2
MySQL 5.0

(點圖放大)






詳細的測試報告:
http://tweakers.net/reviews/657/6

2007-02-23

EnterpriseDB - 從 MySQL 遷移到 EnterpriseDB


EnterpriseDB 是多數將 PostgreSQL 商業化並提供技術服務的國際公司之一.
這篇是在這家公司網站上強調對 MySQL 客戶遷移到以 PostgreSQL 商品化的產品上.

原文在這:
http://www.enterprisedb.com/solutions/gotmysql.do



運行可靠, 擴展與升級, 重要(mission-critical)的應用- 在價格上可與 MySQL 比較

MySQL 用戶直接知道, MySQL 是最有效的為 read-only 環境和 web/edge 層級 - 但不是為應用在要求 OLTP 環境, 要求企業類別 -可靠性、有效性, 和規劃可伸縮性。

實際上, 一些 EnterpriseDB 客戶繼續跑 MySQL 資料庫為較少 demanding 應用並且轉向我們他們有 "hit a wall" 與 MySQL 。

用被證明的企業特點和可比較的執照費用, EnterpriseDB 先進的伺服器 支持這些組織的mission-critical 應用和, 在某些情況下, 替換MySQL 在企業過程中。

結束商業終止在成本和效能之間

EnterpriseDB 先進的伺服器 根據 PostgreSQL, 世界的最先進的開放來源資料庫。PostgreSQL 被開發了和連續被改進了過去 20 年, 和由最大和受尊敬的開放來源社區的當中一個維護在世界上。

EnterpriseDB 提高PostgreSQL 以 24x7 用戶支持 - 以及表現改進貢獻回到社區。生產力 和表現工具隨員 更加進一步保證資料完整性和高效率的表現為 OLTP 應用 demanding 需要。

不 同於MySQL, EnterpriseDB 先進的伺服器被設計從開始是企業類級的 OLTP RDBMS 。能力譬如觸發器, 被存放的規程, 支持次級選擇, 並且當地 PL/SQL 支持是在 EnterpriseDB 從一開始。認為許多其它企業類特點可利用在我們的資料庫。

企業級優秀特點

豐富的功能性

  • 真實的線上備份及時間點復原(PITR)
  • 健全的 Oracle 遷移與資料轉換工具
  • 能力使用資料表, 表空間和複雜分成, 包括資料和索引

儲存的安全保障

  • PITR
  • 認證通過 SSL 或 Kerberos
  • 更多顆粒狀的認證
  • 固定密碼學以 256 位元編成密碼
  • 唯一的資料庫的當中一個充分地是 PCI 服從在資料庫之內

被證實的可靠性

  • EnterpriseDB 、PostgreSQL 和 Oracle 真實的複寫
  • 日誌運行為警告的可靠者
  • PITR 以線上備份與復原
  • MVCC

證明

  • Vonage 的總統宣稱他喜歡 EnterpriseDB 因為它提供許多 Oracle 的力量, 包括兼容性以Oracle 應用, 但 以開放源碼 MySQL 的價格 。"Oracle 是大錘。MySQL 是一把小錘子。我們之間需要某事, "他說。
    -- Computerworld
  • EnterpriseDB 的瑕疵密度 比 MySQL 好由數量級 和更好比平均商業代碼由二個數量級, 根據 Coverity
  • "EnterpriseDB 的產品 品質就像 Oracle 的, 造成幾乎沒有停工期為再培訓資料庫管理員。"
    -- BusinessWeek

PostgreSQL & Google-Analytics Running...

::Planet PostgreSQL::

PostgreSQL Information Page

PostgreSQL日記(日本 石井達夫先生Blog)

PostgreSQL News

黑喵的家 - 資料庫相關

Google 網上論壇
PostgreSQL 8 DBA 專業指南中文版
書籍內容討論與更多下載區(造訪此群組)
目錄下載: PostgreSQL_8 _DBA_Index_zh_TW.pdf (更新:2007-05-18)

全球訪客分佈圖(Google)

全球訪客分佈圖(Google)