<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 39  文章 - 1  trackbacks - 0
    <2013年8月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

      在很多系統中用數字類型表示日期類型的字段設計。這樣設計會帶來一定的問題,現具體說明一下。

      1.存儲空間

      在傳統設計中,經常有類似的設計,很多設計的初衷是為了節省存儲空間。下面舉例觀察一下,不同字段類型的存儲空間消耗。oracle培訓

      示例

      SQL> create table t1 ( c1 int,c2 number,c3 date);

      SQL> insert into t1 values(20110101,20110101,to_date('20110101','yyyymmdd'));

      SQL> commit;

      SQL> select dump(c1),dump(c2),dump(c3) from t1;

      DUMP(C1)

      --------------------------------------------------------------------------------

      DUMP(C2)

      --------------------------------------------------------------------------------

      DUMP(C3)

      --------------------------------------------------------------------------------

      Typ=2 Len=5: 196,21,12,2,2 //占用5個字節

      Typ=2 Len=5: 196,21,12,2,2 //占用5個字節

      Typ=12 Len=7: 120,111,1,1,1,1,1 //占用7個字節

      結論

      采用這種設計,會在一定程度上節省空間,但是整體收益并不是很明顯。

      2.數據質量

      示例

      SQL> insert into t1(c1) values(20119999); …ok

      SQL> insert into t1(c3) values(20119999); …err

      結論

      采用這種寫法,會”屏蔽”字段的日期屬性。在開發的過程中容易導致因為異常日期數據(合法數字),造成數據質量下降。

      3.字段加減

      示例

      SQL> select * from t1;

      C1 C2 C3

      ---------- --------- ---------

      20110101 20110101 01-JAN-11

      20110202 20110202 02-FEB-11

      SQL> select c1+50,c3+50 from t1;

      C1+50 C3+50

      ---------- ---------

      20110151 20-FEB-11

      20110252 24-MAR-11

      *顯然對于從數字表示的日期,簡單的加法就造成了”歧義”。

      結論

      針對日期類型的加、減法,日期之間的減法等,有其特殊的含義,用數字代表,往往會帶來錯誤的結果。

      4.計算選擇率

      示例

      SQL> create table t1(d1 date,n1 number);

      SQL> select * from t1 where rownum<5;

      D1 N1

      ------------------- ------------

      2001-06-02 00:00:00 20010602

      2001-06-03 00:00:00 20010603

      2001-06-04 00:00:00 20010604

      2001-06-05 00:00:00 20010605

      *兩列列分別為日期、數字類型,但保存的都是"日期"含義的數據。

    1.JPG

      *在日期類型對,對選擇基數的計算明顯出現異常。有正常的8”天”偏差到了396”天”。其直接后果導致優化器可能選擇了錯誤的執行計劃。

      結論

      使用錯誤的數據類型保存(例如:用數字保存日期類型數據),這往往會造成優化器對范圍的判斷錯誤。雖然可以采用直方圖或FBI的方式解決,但是這會花費額外的代價且有一定局限性。

    posted on 2013-08-13 14:49 親愛的小孩 閱讀(109) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 手机永久免费的AV在线电影网| 亚洲人成人网站18禁| 久久国产一片免费观看| 免费午夜爽爽爽WWW视频十八禁 | 最刺激黄a大片免费网站| 国产AV无码专区亚洲A∨毛片| 久青草视频在线观看免费| 国产亚洲A∨片在线观看| 韩国免费a级作爱片无码| 亚洲成AV人在线播放无码| 日本免费电影一区二区| 亚洲视频在线观看不卡| 国产成人精品免费视频网页大全| 亚洲成人福利在线| 在线精品免费视频| 人人爽人人爽人人片av免费| 亚洲色偷偷综合亚洲AVYP| 国产午夜精品免费一区二区三区 | 亚洲人成在线免费观看| 女人与禽交视频免费看| 日韩在线一区二区三区免费视频| 亚洲综合国产一区二区三区| 亚洲精品免费观看| 亚洲午夜无码毛片av久久京东热 | 亚洲AV午夜福利精品一区二区| 久久ww精品w免费人成| 亚洲男人天堂2022| 亚洲真人日本在线| 亚洲大片免费观看| 亚洲AV第一成肉网| 亚洲精品国产字幕久久不卡| 精品无码免费专区毛片| 色窝窝亚洲AV网在线观看| 亚洲精品亚洲人成人网| 在线视频精品免费| 一级特黄aaa大片免费看| 久久精品国产亚洲av麻豆小说| 成年女人永久免费观看片| 国产一级淫片a免费播放口| 学生妹亚洲一区二区| 亚洲熟妇无码乱子AV电影|