软件测试oracle问题,数据库基础:Oracle数据库中时间问题比较
關(guān)鍵字:
在監(jiān)控、診斷、處理數(shù)據(jù)庫
在以前的版本中,Oracle的時間計量單位是厘秒,使用厘秒最顯而易見的問題就是可能有些操作是小于厘秒的。看上去這似乎不太常見,但是實際上在操作系統(tǒng)上很多操作都是以微妙作為單位的,這意味著操作的起始和終止在不到厘秒就完成了,從厘秒級看就好像沒有發(fā)生一樣,因為持續(xù)時間近似為0。而有時候操作的持續(xù)時間不到厘秒,但是起始和終止發(fā)生在兩個相連的厘秒,所以操作時間不到厘秒但是卻被記錄為厘秒,造成時間記錄的不準(zhǔn)確。Oracle沒有內(nèi)置的方式來記錄時間的流逝。DATE型數(shù)據(jù)用來記錄單獨的時間點;但是要表達(dá)一個時間量(也就是一個間隔),數(shù)據(jù)庫的設(shè)計者就必須把時間間隔轉(zhuǎn)換成原始單位秒,然后用一個NUMBER列來保存它。
雖然NUMBER這個數(shù)據(jù)類型可以以秒為單位準(zhǔn)確地表示時間,但是它使得時間的計算變得很困難。比如,60秒是1分鐘,60分鐘是1個小時,24個小時等于1天——這些數(shù)字在以十進(jìn)制為基礎(chǔ)的數(shù)字系統(tǒng)中都是非常不實用的。
在Oracle中,按照SQL 99標(biāo)準(zhǔn),增加了時間間隔型數(shù)據(jù)INTERVAL YEAR TO MONTH 和INTERVALDAY TO SECOND,它們和其他幾種數(shù)據(jù)類型一起使得對時間的處理更加準(zhǔn)確。TIMESTAMP、TIMESTAMPWITHTIME ZONE和TIMESTAMP WITH LOCALTIMEZONE等數(shù)據(jù)類型都把時間的表達(dá)精確到了若干分之一秒,而且后面兩種還解決了地理位置造成的時間變化。
Sql語句的等待時間等于ELAPSED_TIME減去CPU_TIME,但是很難看到精確的等待時間。在V$SYSTEM_EVENT視圖中能夠看到數(shù)據(jù)庫實例級的等待時間(并不是每條Sql語句的),但是看不到發(fā)生在操作系統(tǒng)上的等待時間。
在SQL和PL/SQL中,你都可以用時間間隔型數(shù)據(jù),它們都是用同一種方式規(guī)定的:
論壇精華帖
21/212>
總結(jié)
以上是生活随笔為你收集整理的软件测试oracle问题,数据库基础:Oracle数据库中时间问题比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle rcu 安装,Oracle
- 下一篇: mysql导出linux,linux下m