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

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

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

    隨筆 - 39  文章 - 1  trackbacks - 0

      在很多系統(tǒng)中用數(shù)字類型表示日期類型的字段設(shè)計。這樣設(shè)計會帶來一定的問題,現(xiàn)具體說明一下。

      1.存儲空間

      在傳統(tǒng)設(shè)計中,經(jīng)常有類似的設(shè)計,很多設(shè)計的初衷是為了節(jié)省存儲空間。下面舉例觀察一下,不同字段類型的存儲空間消耗。oracle培訓(xùn)

      示例

      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個字節(jié)

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

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

      結(jié)論

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

      2.數(shù)據(jù)質(zhì)量

      示例

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

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

      結(jié)論

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

      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

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

      結(jié)論

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

      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

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

    1.JPG

      *在日期類型對,對選擇基數(shù)的計算明顯出現(xiàn)異常。有正常的8”天”偏差到了396”天”。其直接后果導(dǎo)致優(yōu)化器可能選擇了錯誤的執(zhí)行計劃。

      結(jié)論

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

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

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久美女网站免费| 你是我的城池营垒免费观看完整版 | 亚洲人成无码网站久久99热国产| 亚洲中文字幕无码一去台湾| 桃子视频在线观看高清免费完整| 亚洲国产综合在线| 一二三四免费观看在线视频中文版 | 色天使亚洲综合一区二区| 妞干网免费视频在线观看| ass亚洲**毛茸茸pics| 最近中文字幕mv免费高清视频7| 亚洲国产综合人成综合网站00| 野花高清在线观看免费3中文 | 中国在线观看免费国语版| 国产精品亚洲精品| 全免费一级毛片在线播放| 337P日本欧洲亚洲大胆精品| 免费一级毛片在播放视频| 黄色视屏在线免费播放| 亚洲gv白嫩小受在线观看| 国产精品视频免费| 亚洲精品无AMM毛片| 亚洲黄黄黄网站在线观看| 国产羞羞的视频在线观看免费| 亚洲视频在线免费看| 无码一区二区三区AV免费| 国产精品亚洲专区一区| 国产精品亚洲高清一区二区 | 亚洲日本一线产区和二线| 亚洲AV之男人的天堂| 无码国产精品一区二区免费3p| 亚洲综合综合在线| 国产精品色午夜免费视频| 成年免费a级毛片免费看无码| 亚洲最大中文字幕| 免费人成视网站在线观看不卡| 久久精品中文字幕免费| 亚洲精品人成网线在线播放va | 亚洲天堂电影在线观看| 又爽又高潮的BB视频免费看 | 亚洲综合日韩中文字幕v在线|