通過OLEDB從Oracle DB檢索數據的最快方法是什麼?從ORACLE讀取最快的OLEDB
它應該是可移植的(必須在Postgres和MS SQL上工作),只有一列被傳輸(來自某個大表的ID)。
當前性能是100k行/秒。如果我想讓它變得更快,我是否期待太多?
澄清:
表具有23M記錄
查詢是:SELECT ID FROM OBJECTS
瓶頸是從Oracle轉移到客戶端軟件,該軟件是C++/OLEDB
通過OLEDB從Oracle DB檢索數據的最快方法是什麼?從ORACLE讀取最快的OLEDB
它應該是可移植的(必須在Postgres和MS SQL上工作),只有一列被傳輸(來自某個大表的ID)。
當前性能是100k行/秒。如果我想讓它變得更快,我是否期待太多?
澄清:
表具有23M記錄
查詢是:SELECT ID FROM OBJECTS
瓶頸是從Oracle轉移到客戶端軟件,該軟件是C++/OLEDB
什麼嘿,我會抓住機會。
編輯:至於連接,我HEARTILTY建議:
Oracle Objects for OLE,OO4O的簡稱。
它是由Oracle for Oracle生成的,而不是由MS生成的。它使用高性能本地驅動程序,而不是ODBC來提高性能。我個人親自使用過這個,而且速度很快。我連接到非常大的數據庫和數據倉庫,每個表的數據永遠不會少於200萬條記錄,其中大部分數據量都大得多。
注意你不需要知道OLE來使用它。它包裝OLE,因此名稱。在概念上和語法上,它將「結果集」包裝成由SQL命令提供的動態集。如果您曾經使用DAO或ADO,您將在5分鐘內生產。
這裏有一個更深入的article.
如果您不能使用OO4O,然後通過Oracle提出專門的.NET數據提供程序是非常好的。不是由MS製造的。
HTH
使用 「WHERE」 條款?例如:「從對象選擇ID其中id =標準」
這僅發送的通過網絡感興趣的記錄。否則,所有2300萬條記錄都通過電線發送。
或者看看「之間」。
「從對象選擇id其中thisone和thatone之間的ID」
,在您指定的範圍將縮減的記錄。
HTH
您的問題有些不詳細。你的客戶如何使用這些行?排序順序是否重要?總共有多少行?執行的查詢是否複雜?網絡流量是否會產生影響?磁盤I/O是否有影響? – APC 2010-08-17 13:01:15
同意APC。沒有比這個簡單的select語句更快的方法,但其他變量可能會產生影響。 – rkellerm 2010-08-17 14:27:11
使用「WHERE」子句?從id = criteria的對象中選擇id。或者,看看「之間」 – JustBoo 2010-08-17 18:04:56