友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

SQL 21日自学通(V3.0)(PDF格式)-第113章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



的段 



每次扩展的信息 



INPUT 



    SQL》 SELECT SUBSTR(SEGMENT_NAME;1;30) SEGMENT_NAME; 



        2                  SUBSTR(SEGMENT_TYPE;1;12)  SEGMENT_TYPE; 



        3                  BYTES; 



        4                  EXTENTS; 



        5    FROM  SYS。DBA_SEGMENTS 



        6    WHERE  OWNER  =  'TWILLIAMS' 



        7        AND  ROWNUM  《  5 



                                                                               345 


…………………………………………………………Page 346……………………………………………………………

SQL 21  日自学通(V1。0)                                                     翻译人    笨猪 



OUTPUT 



SEGMENT_NAME         SEGMENT_TYPE         BYTES                EXTENTS 



INVOICE_TBL          TABLE                163840               10 



PLAINT_TBL        TABLE                4763783              3 



HISTORY_TBL          TABLE                547474996            27 



HISTORY_INX          INDEX                787244534            31 



分析 



    看一下从 DBA_SEGMENTS  的输出  你可以很容易地通常 EXTENTS  的数字来确定增 



长最多的表的情况  在本例子 HISTORY_TBL 和 HISTORY_INX                   的增长要比另外的两个表 



快得多 



    现在你可以看一下表每次增长的情况                   我们以 INVOICE_TBL 为例 



INPUT/OUTPUT 



    SQL》 SELECT SUBSTR(OWNER;1;10) OWNER; 



        2                  SUBSTR(SEGMENT_NAME;1;30)  SEGMENT_NAME; 



        3                  EXTENT_ID; 



        4                  BYTES 



        5    FROM  SYS。DBA_EXTENTS 



        6    WHERE  OWNER  =  'TWILLIAMS' 



        7        AND  SEGMENT_NAME  =  'INVOICE_TBL' 



        8    ORDER  BY  EXTENT_ID 



OWNER                SEGMENT_NAME         EXTENT_ID            BYTES 



TWILLIAMS            INVOICE_TBL          0                    16384 



TWILLIAMS            INVOICE_TBL          1                    16384 



TWILLIAMS            INVOICE_TBL          2                    16384 



TWILLIAMS            INVOICE_TBL          3                    16384 



TWILLIAMS            INVOICE_TBL          4                    16384 



TWILLIAMS            INVOICE_TBL          5                    16384 



TWILLIAMS            INVOICE_TBL          6                    16384 



TWILLIAMS            INVOICE_TBL          7                    16384 



TWILLIAMS            INVOICE_TBL          8                    16384 



TWILLIAMS            INVOICE_TBL          9                    16384 



分析 



    这个例子显求了该表每次的增长                  EXTEND_ID   和每次增长的字节大小情况  这里每 



                                                                               346 


…………………………………………………………Page 347……………………………………………………………

SQL 21  日自学通(V1。0)                                               翻译人    笨猪 



次的增长只有 16K       而且已经增长了 10 次了  你也许应该重建数据库并重新生成表并增加 



initial_extent 的大小以优化空间的使用  重新生成表将可以将表中的数据放放一个单一的片 



断中  所以也就还会有碎片产生了 



空间分配 



    ORACLE  是使用数据文件来分配数据库的空间的                   空间在逻辑上以表空间的形式存 



在  但是它是以数据文件的物理形式存在于磁盘上的                      在许多的解释器中         在数据文件中 



也可直接包括数据         尽管这些文件以能会以其它的名字来引用                   视图 DBA_DATA_FILES 



可以让你看到表空间的实际分配 



INPUT/OUTPUT 



    SQL》 SELECT SUBSTR(TABLESPACE_NAME;1;25) TABLESPACE_NAME; 



        2                  SUBSTR(FILE_NAME;1;40)  FILE_NAME; 



        3                  BYTES 



        4    FROM  SYS。DBA_DATA_FILES; 



TABLESPACE_NAME           FILE_NAME                BYTES 



SYSTEM                    /disk01/system0。dbf      41943040 



RBS                       /disk02/rbs0。dbf         524288000 



TEMP                      /disk03/temp0。dbf        524288000 



TOOLS                     /disk04/tools0。dbf       20971520 



USERS                     /disk05/users0。dbf       20971520 



DATA_TS                   /disk06/data0。dbf        524288000 



INDEX_TS                  /disk07/index0。dbf       524288000 



分析 



    你现在可以看到在数据库中存在的每个表空间实际上被分配了多大的空间                               注意数据 



库文件的名称与它所属的表空间是一一对应的 



可用空间 



    就像下边的例子所显示的一样  DBA_FREE_SPACE               视图可以告诉你在每个表格空中 



还有多少自由的空间可以使用 



INPUT 



                                                                        347 


…………………………………………………………Page 348……………………………………………………………

SQL 21  日自学通(V1。0)                                                   翻译人    笨猪 



    SQL》 SELECT TABLESPACE_NAME; SUM(BYTES) 



        2    FROM  SYS。DBA_FREE_SPACE 



        3    GROUP  BY  TABLESPACE_NAME; 



OUTPUT 



                   TABLESPACE_NAME           SUM(BYTES) 



                   SYSTEM                    23543040 



                   RBS                       524288000 



                   TEMP                      524288000 



                   TOOLS                      12871520 



                  USERS                      971520 



                   DATA_TS                   568000 



                   INDEX_TS                   1288000 



分析 



    上边的例子给出的所有的每个表空间的自由空间                       如果你只是使用 SELECT         语句而没 



有使用 SUM 函数的话你也会看到每一段的自由空间情况 



ROLLBACK 段 



    为事务所预留的 ROLLBACK  区域对数据库的性能影响是非常大的  你需要知道有多 



少的 ROLLBACK 段是可用的  视图 DBA_ROLLBACK_SEGS 可以为你提供这些信息 



INPUT 



    SQL》 SELECT OWNER; 



        2                  SEGMENT_NAME 



        3    FROM  SYS。DBA_ROLLBACK_SEGS; 



OUTPUT 



                    OWNER              SEGMENT_NAME 



                    SYS                SYSTE
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!