日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

新特性的副产品--从11g的DEFERRED SEGMENT CREATION说起

發布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 新特性的副产品--从11g的DEFERRED SEGMENT CREATION说起 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?某日協助同事完成兩個測試數據庫的結構同步。將早就爛熟于心的exp和imp命令編寫成shell自動運行,交活了事。沒有想到,同事說同步的表相差巨大。不會吧,檢查了生成的日志信息:

?

  • .?exporting?dimensions?
  • .?exporting?post-schema?procedural?objects?and?actions?
  • .?exporting?statistics?
  • Export?terminated?successfully?without?warnings.?
  • ?? ? ? ?正常的一談糊涂。但是檢查導出表的數據確實差了不少。應該是49張表,但是導出的只有34張。

    ?? ? ? ?反復檢查USER_TABLES的信息,首先發現的就是確實沒有導出的表在某些屬性字段上比較怪異。

    ?? ? ? ?

  • SQL>?select?INITIAL_EXTENT,NEXT_EXTENT?from?user_tables?where?table_name='TBL_NC_AREA_I';?
  • ?
  • INITIAL_EXTENT?NEXT_EXTENT?
  • --------------?-----------?
  • ?? ? ? ? 奇怪。為空。

    ?? ? ? ? 沒有辦法,估計需要修改表的一些狀態才可能改變。

  • SQL>?alter?table?TBL_NC_AREA_I?move;?
  • ?
  • Table?altered.?
  • ?
  • SQL>?select?INITIAL_EXTENT,NEXT_EXTENT?from?user_tables?where?table_name='TBL_NC_AREA_I';?
  • ?
  • INITIAL_EXTENT?NEXT_EXTENT?
  • --------------?-----------?
  • ?????65536?????1048576?
  • ?
  • SQL>??
  • ?? ? ? ? 不錯,現在看起來比較正常了,exp也正常導出。

    ?? ? ? ? ?真是為什么呢?存儲參數的信息沒有出現,而后在user_tables中發現了字段SEGMENT_CREATED。估計就是這個“問題”。找找看,發現凡是不能正常導出的表這個屬性字段都是顯示:?? ? ??

  • select?INITIAL_EXTENT,NEXT_EXTENT,SEGMENT_CREATED?
  • from?user_tables?where?table_name='TBL_NC_BALANCEBANK_I';?
  • ?
  • --------------?-----------?---?
  • ???????????????NO?
  • ?? ? ? ? 查。發現原來這個11gR2的一個特性:DEFERRED SEGMENT CREATION,即建立表的時候,一開始并沒有直接分配存儲空間。直接在字典中記錄了數據結構。而只有當真正有數據的時候才分配空間。這種方法對于象SAP這樣大的系統需要部署成千上萬張表是非常有效的。

    ?? ? ? ? 檢查測試數據庫:

  • SQL>?show?parameters?deferred_segment_creation?
  • ?
  • NAME?????????????????????TYPE????VALUE?
  • ------------------------------------?-----------?------------------------------?
  • deferred_segment_creation????????boolean?????TRUE?
  • ?? ? ? ? ?這個功能是開啟的。當然可以通過修改參數來進行修改:

  • alter?system?set?deferred_segment_creation=true;?
  • session級別的方法相似。?
  • 如果在表一級:?
  • CREATE?TABLE?....?SEGMENT?CREATION?IMMEDIATE;?
  • 需要延后分配:?
  • CREATE?TABLE?...?SEGMENT?CREATION?DEFERRED?
  • ?? ? ? ?當然還有我的“土制”辦法,move一下表。

    ?? ? ? ? 現在EXP是沒有問題。但是奇怪,為什么EXP只能檢索出已經分配存儲空間的表,難道讀的字典不是相同的基表?不能不說,這個特性對于EXP而言,起碼是有瑕疵的,并且在一些UPGRDE等操作也是有風險的。

    ?? ? ? ?同時注意,這樣的表在SYS, SYSTEM, PUBLIC, OUTLN, or XDB 模式(schema)下,是無法建立的。

    ?? ? ? ?時時都是有收獲的,只要留心些。 -:)

    ?? ? ? ? --EOF

    本文轉自Be the miracle!博客51CTO博客,原文鏈接http://blog.51cto.com/miracle/503936如需轉載請自行聯系原作者


    Larry.Yue

    總結

    以上是生活随笔為你收集整理的新特性的副产品--从11g的DEFERRED SEGMENT CREATION说起的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。