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

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

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






    DBA_SYNONYMS   给出了所有存在于数据库中的同义字的清单                   DBA_SYNONYMS 



给出了所有数据库用户的同义字清单               与 USER_SYNONYMS    不同 — — 它只是给出了当前 



用户私有的同义字 



INPUT/OUTPUT 



    SQL》 SELECT SYNONYM_NAME; 



                                                                     342 


…………………………………………………………Page 343……………………………………………………………

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



        2                  SUBSTR(TABLE_OWNER;1;10)  TAB_OWNER; 



        3                  SUBSTR(TABLE_NAME;1;30)  TABLE_NAME 



        4    FROM  SYS。DBA_SYNONYMS 



        5    WHERE  OWNER  =  'JSMITH'; 



               SYNONYM_NAME          TAB_OWNER       TABLE_NAME 



               TRIVIA_SYN            VJOHNSON        TRIVIA_TBL 



分析 



    下边的例子表时 JSMITH  有对 VJOHNSON  所有的 TRIVIA_TBL                      表有一个名字叫 



TRIVIA_SYN  的同义字 



    现在假设你想得到所有的 JSMITH  的表和索引的清单  你也许会写出像下边这样的查 



询   它使用了 DBA_INDEXS 



INPUT/OUTPUT 



    SQL》 SELECT SUBSTR(TABLE_OWNER;1;10) TBL_OWNER; 



        2                  SUBSTR(TABLE_NAME;1;30)  TABLE_NAME; 



        3                  SUBSTR(INDEX_NAME;1;30)  INDEX_NAME 



        4    FROM  SYS。DBA_INDEXES 



        5    WHERE  OWNER  =  'JSMITH' 



        6        AND  ROWNUM  《  5 



        7    ORDER  BY  TABLE_NAME; 



            TBL_OWNER        TABLE_NAME                INDEX_NAME 



            JSMITH           ADDRESS_TBL               ADDR_INX 



            JSMITH           CUSTOMER_TBL              CUST_INX 



            JSMITH           HOBBY_TBL                 HOBBY_PK 



            JSMITH           MAGAZINE_TBL              MAGAZINE_INX 



分析 



    像上边这样一个很容易的查询可以给出一个计划                           工程  和与之相中所使用的表 



INPUT/OUTPUT 



    SQL》 SELECT SUBSTR(TABLE_NAME;1;15) TABLE_NAME; 



        2                  SUBSTR(INDEX_NAME;1;30)  INDEX_NAME; 



        3                  SUBSTR(COLUMN_NAME;1;15)  COLUMN_NAME; 



        4                  COLUMN_POSITION 



                                                                                  343 


…………………………………………………………Page 344……………………………………………………………

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



        5    FROM  SYS。DBA_IND_COLUMNS 



        6    WHERE  TABLE_OWNER  =  'JSMITH' 



        7        AND  ROWNUM  《  10 



        8    ORDER  BY  1;2;3 



TABLE_NAME       INDEX_NAME        COLUMN_NAME       COLUMN_POSITION 



ADDRESS_TBL      ADDR_INX          PERS_ID           1 



ADDRESS_TBL      ADDR_INX          NAME              2 



ADDRESS_TBL      ADDR_INX          CITY              3 



CUSTOMER_TBL     CUST_INX          CUST_ID           1 



CUSTOMER_TBL     CUST_INX          CUST_NAME         2 



CUSTOMER_TBL     CUST_INX          CUST_ZIP          3 



HOBBY_TBL        HOBBY_PK          SAKEY             1 



MAGAZINE_TBL     MAGAZINE_INX      ISSUE_NUM         1 



MAGAZINE_TBL     MAGAZINE_INX      EDITOR            2 



    现在你已经选择一在每一个表中的索引过的列并根据索引出现的次序进行了排序                                  你 



已经学习了表  但是如何才能更好地把握表呢  表空间比表和索引之类的对象更高级                                  表 



空间是 ORACLE 为数据库分配空间的机制  要分配空间                   你必须知道当前有多少空间可供 



使用    你可以对 DBA_TABLESPACES       视图执行一个查询来查看所有的表空间以及它们的 



状态    如下例所示 



INPUT/OUTPUT 



    SQL》 SELECT TABLESPACE_NAME; STATUS 



        2    FROM  SYS。DBA_TABLESPACES 



                  TABLESPACE_NAME         STATUS 



                  SYSTEM                  ONLINE 



                  RBS                     ONLINE 



                  TEMP                    ONLINE 



                  TOOLS                   ONLINE 



                  USERS                   ONLINE 



                  DATA_TS                 ONLINE 



                  INDEX_TS                ONLINE 



分析 



    上边的例子告诉了你当前有多少表空间处于在线状态                       也就是说它对于你来说是可用 



的  如果它是离线状态  那么在它之中的数据库对象                    也就是表  将是不可访问的 



                                                                        344 


…………………………………………………………Page 345……………………………………………………………

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



    那么对于 JSMITH 来说有多少配额可供他访问呢                     也就是说  对于 JSMITH 来说他可 



以使用多少空间来存储数据库对象呢 



INPUT/OUTPUT 



    SQL》 SELECT TABLESPACE_NAME; 



        2                  BYTES; 



        3                  MAX_BYTES 



        4    FROM  SYS。DBA_TS_QUOTAS 



        5    WHERE  USERNAME  =  'JSMITH' 



               TABLESPACE_NAME         BYTES         MAX_BYTES 



               DATA_TS                 134111232     …1 



               INDEX_TS                474390528     …1 



分析 



    JSMITH  对于可供他访问和使用的表空间是没有限制的                         在这种情况下空间的使用是 



本着先入为主的原则进行的  举例来说                   如果 JSMITH  在 DATA_TS      中使用了所有的表空 



间  那么其它的用户就不能在这里创建对象了 



数据库的生长 



    在这一部分有两个视图可以对管理数据库的生长情况进行控制                                            它 们 是 



DBA_SEGMENTS     和 DBA_EXTENTS       DBA_SEGMENTS     提供了关于每一段或数据对象 



如存储分配        空间使用和扩展的信息  每次当表和索引的增长超过了预先的指定就会开始 



下一次的扩展  采用这种方法增长的表通常会有碎片的产生  DBA_EXTENTS                                则给出的段 



每次扩展的信息 



INPUT 



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