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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 終端環境對go程式的影響?Go
- 【Dataguard】Oracle多租戶環境對Dataguard的影響Oracle
- Oracle RAC 環境下的連線管理Oracle
- sqlcipher加密sqlite後iOS環境下FMDB效能影響加密SQLiteiOS
- 對人工智慧的應用、發展及其影響的思考人工智慧
- RAC和ASM環境下打patchASM
- RAC環境下建立物理DATAGUARD(1)
- RAC環境下建立物理DATAGUARD(2)
- RAC環境修改spfile的位置
- OpenTelemetry agent 對 Spring Boot 應用的影響:一次 SPI 失效的Spring Boot
- 元宇宙技術對於虛擬模擬應用的影響元宇宙
- 中原地產:疫情對房地產行業的影響及應對(附下載)行業
- OpenTelemetry agent 對 Spring Boot 應用的影響:一次 SPI 失效的案例Spring Boot
- 雲端計算環境下的BGP協議應用協議
- 分散式儲存在雲環境下的應用和部署分散式
- Oracle RAC環境下ASM磁碟組擴容OracleASM
- 物聯網技術對移動應用程式開發的影響
- 在域環境下對賬戶的操作
- 競爭環境對洗衣粉批發生產廠家價格的影響有哪些?
- Web3的應用發展及其影響Web
- 影響FMEA有效應用的因素是什麼?
- Windows環境下的Nginx環境搭建WindowsNginx
- Java指令重排序在多執行緒環境下的應對策略Java排序執行緒
- 液冷對環境造成負面影響?這四大誤區你可能也有
- 超大記憶體環境下的Oracle RAC引數設定建議記憶體Oracle
- 浮動的盒子對img的影響
- FreeRtos於嵌入式環境的應用
- [20190211]rac下解鎖應用出現的阻塞.txt
- Spring Boot 2.4版本前後的分組配置變化及對多環境配置結構的影響Spring Boot
- unusable index對DML/QUERY的影響Index
- Nologging對恢復的影響(二)
- 語言對思維的影響
- Nologging對恢復的影響(一)
- window下使用nw.js開發桌面應用程式環境的搭建JS
- 在非k8s 環境下 的應用 使用 Dapr Sidekick for .NETK8SIDE
- KingbaseES RAC部署案例之---SAN環境構建RAC
- 網線的分類與對網速的影響 網線對網速影響大嗎?
- 磁環共模電感供應商科普磁環共模電感封裝尺寸對選型的影響封裝