欧美日日操,日日爱网站,99久久久久久久,日本高清不卡免费,久久免费观看国产精品,秋霞在线观看视频一区二区三区

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

Oracle中比例和時間二者需兼得

發布時間:  2012/8/9 17:39:33

在監控、診斷、處理數據庫性能問題的時候,時間信息往往是非常重要的判斷依據。有時候可能我們會使用一些比例來判斷性能,但是使用比例而不使用時間往往會將我們帶向錯誤的方向。

  在以前的版本中,Oracle的時間計量單位是厘秒,使用厘秒最顯而易見的問題就是可能有些操作是小于厘秒的。看上去這似乎不太常見,但是實際上在操作系統上很多操作都是以微妙作為單位的,這意味著操作的起始和終止在不到厘秒就完成了,從厘秒級看就好像沒有發生一樣,因為持續時間近似為0。而有時候操作的持續時間不到厘秒,但是起始和終止發生在兩個相連的厘秒,所以操作時間不到厘秒但是卻被記錄為厘秒,造成時間記錄的不準確。Oracle 沒有內置的方式來記錄時間的流逝。DATE型數據用來記錄單獨的時間點;但是要表達一個時間量(也就是一個間隔),數據庫的設計者就必須把時間間隔轉換成原始單位秒,然后用一個NUMBER列來保存它。

  雖然NUMBER這個數據類型可以以秒為單位準確地表示時間,但是它使得時間的計算變得很困難。比如,60秒是1分鐘,60分鐘是1個小時,24個小時等于1天——這些數字在以十進制為基礎的數字系統中都是非常不實用的。

  在Oracle中,按照SQL 99標準,增加了時間間隔型數據INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND,它們和其他幾種數據類型一起使得對時間的處理更加準確。TIMESTAMP、TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE等數據類型都把時間的表達精確到了若干分之一秒,而且后面兩種還解決了地理位置造成的時間變化。

  Sql語句的等待時間等于ELAPSED_TIME減去CPU_TIME,但是很難看到精確的等待時間。在V$SYSTEM_EVENT 視圖中能夠看到數據庫實例級的等待時間(并不是每條Sql語句的),但是看不到發生在操作系統上的等待時間。

  在SQL和PL/SQL中,你都可以用時間間隔型數據,它們都是用同一種方式規定的:

  INTERVAL YEAR[(year_precision)] TO MONTH

  INTERVAL DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

  轉換函數,與date操作關系最大的就是兩個轉換函數:to_date(),to_char()

  to_date() 作用將字符類型按一定格式轉化為日期類型:

  具體用法:to_date('2008-11-27','yyyy-mm-dd'),前者為字符串,后者為轉換日期格式,注意,前后兩者要以一對應。

  如;to_date('2008-11-27 13:34:43', 'yyyy-mm-dd hh24:mi:ss') 將得到具體的時間

  對于精確數值,規定有缺省值:年和日是兩位數,若干分之一秒是六位數。

  時間間隔的大小由INTERVAL來表示,www.britepic.org后面緊接一個放在單引號中的表達式,以及用來解釋該表達式的文字。用YEAR TO MONTH表示時間間隔大小時要在年和月之間用一個連字符(-) 連接。而DAY TO SECOND表示時間間隔大小時要在日和時間之間用一個空格連接。例子如下:

  返回當前時間 年月日小時分秒毫秒

  select to_char(current_timestamp(5),'DD-MON-YYYY HH24:MI:SSxFF') from dual;

  返回當前 時間的秒毫秒,可以指定秒后面的精度(最大=9)

  select to_char(current_timestamp(9),'MI:SSxFF') from dual;

  實現最大值與當前時間的比較

  通過對記錄中最大的時間加上指定月份得到范圍上限,并用CURRENT_DATE獲取當前系統時間與之比較,如果超出該上限則判斷為不存在,表示為0,否則表示為1。

  SQL:

         SELECT COUNT(*) contains

  FROM DUAL t

  WHERE CURRENT_DATE < (SELECT (ADD_MONTHS(MAX(t.med_time),14))

  FROM red_meettingrecord t

  WHERE t.med_tar_id = '225'

  AND t.med_usr_id = '001387')

  通過對記錄中最大的時間加上指定月份得到范圍上限,并用CURRENT_DATE獲取當前系統時間與之比較,如果超出該上限則判斷為不存在,表示為0,否則表示為1。


本文出自:億恩科技【www.sunshares.net】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線