RAC環境下的SEQUENCE對應用的影響
在節點一上:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters and Data Mining options
SQL> create sequence seq_t
2 minvalue 1
3 maxvalue 999999
4 start with 1
5 increment by 1;
Sequence created.
SQL> select seq_t.nextval from dual;
NEXTVAL
----------
1
在節點二上
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters and Data Mining options
SQL> select seq_t.nextval from dual;
NEXTVAL
----------
21
因為建立sequence的時候沒有設定cache選項,所以系統預設cache為20,因此先在節點一上cache了20個,然後節點二上cache了20-40。因此當從不同的節點來進行對sequence取值的時候,會造成先取的值不一定是小的,同樣後取的值不一定會大。
接著在節點一上做如下操作:
SQL> drop sequence seq_t;
Sequence dropped.
SQL> create sequence seq_t
2 minvalue 1
3 maxvalue 999999
4 start with 1
5 increment by 1
6 nocache;
Sequence created.
SQL> select seq_t.nextval from dual;
NEXTVAL
----------
1
在節點二上:
SQL> select seq_t.nextval from dual;
NEXTVAL
----------
2
SQL> select seq_t.nextval from dual;
NEXTVAL
----------
3
SQL>
再返回節點一:
SQL> select seq_t.nextval from dual;
NEXTVAL
----------
4
SQL>
可以看到把sequence的cache取消後,保證了先取的值小,後取的值大。
結論:RAC對前臺程式來說是完全透明的,但是對某些特定的應用並不如此,因此如果涉及到用sequence大小來判斷資料插入先後的應用,應該在上RAC前增加一個DATE型別的欄位來判斷資料插入先後,或者設定sequence的cache為0,以保證應用的正確性。(UPDATE ON 2007-06-27:問題總是有被解決的方法,今天發現自己觀察太不仔細了,其實sequence建立選項中有一個order的關鍵字,使用此關鍵字就可以保證sequence大小一致。但是這樣設定會損失一部分效能,有人做過測試,大概損失1/3的效能。如果對sequence的取值達不到每秒鐘幾十次,則order帶來的影響可以忽略。)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25016/viewspace-904071/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【RAC】資料庫的靜默狀態(QUIESCE RESTRICTED)對RAC環境的影響資料庫UIREST
- 終端環境對go程式的影響?Go
- 【RAC】在RAC環境中SQL*Plus命令對資料庫及例項的影響SQL資料庫
- 硬體環境對系統效能的影響
- 【Dataguard】Oracle多租戶環境對Dataguard的影響Oracle
- RAC環境中的應用程式部署——RAC部署和效能
- RAC環境下dataguard的搭建
- 介紹RAC環境中的應用程式部署——RAC部署和效能
- GPFS Persistent Reserve 的設定對Oracle RAC 的影響Oracle
- sqlcipher加密sqlite後iOS環境下FMDB效能影響加密SQLiteiOS
- 對人工智慧的應用、發展及其影響的思考人工智慧
- XML 在 ASP 環境下的應用(轉)XML
- Oracle RAC 環境下的連線管理Oracle
- RAC環境對並行查詢的支援並行
- RAC的cache fusion對資料塊訪問效率的影響
- RAC環境下的redo日誌組重建
- 嚴格模式下對於this指向的影響模式
- ORACLE RAC 環境下修改IPOracle
- oracle RAC 環境解決sequence 不一致問題Oracle
- 雲端計算環境下的BGP協議應用協議
- 【RAC】rac環境下的資料庫備份與還原資料庫
- rac環境下standby資料庫的實現資料庫
- 嚴格模式下對變數宣告的影響模式變數
- OpenTelemetry agent 對 Spring Boot 應用的影響:一次 SPI 失效的Spring Boot
- 中原地產:疫情對房地產行業的影響及應對(附下載)行業
- 物聯網技術對移動應用程式開發的影響
- 元宇宙技術對於虛擬模擬應用的影響元宇宙
- 分散式儲存在雲環境下的應用和部署分散式
- DB2 HADR環境下,應用的改變DB2
- RAC和ASM環境下打patchASM
- RAC 環境下修改歸檔模式模式
- RAC環境下配置OGG同步
- OpenTelemetry agent 對 Spring Boot 應用的影響:一次 SPI 失效的案例Spring Boot
- 並行查詢對於響應時間的影響實驗並行
- 基於RedHat的RAC環境下修改ip及vipRedhat
- Oracle RAC環境下vip/public/private IP的區別Oracle
- rac環境vip在linux下的連線資訊Linux
- 在aix oracle rac 環境下,增加lv的步驟AIOracle