当前位置:   article > 正文

DM模式对象管理_dm 查看连接用户

dm 查看连接用户
  1. 第九部分:模式对象
      1. 每个用户创建后,会在模式中有一个同名的模式

      1. 还有一些模式是没有对应的用户的,这是因为DM的一个用户可以对应多个模式的,而Oracle中是一对一的
    • 模式定义:
      1. 模式是一个特殊的对象集合,在概念上可以将其看作是包含表、视图、索引等若干兑现搞得对象及
      2. 模式对象
        1. 表、视图、约束、索引、序列、触发器、存储过程/函数、包、同义词、类、域
      3. 模式和用户的关系
        1. 一个用户可以对应多个模式。
        2. 用户的默认模式为同名模式
    • 创建模式
      1. create schema DAMENG authorization SYSDBA;
      2. 修改模式
        1. SET schema DAMENG
      3. 删除模式
        1. drop schema DAMENG
      4. 查询用户默认模式
        1. select user;

        1. select sys_context('userenv','current_schema');
          1. 查询用户当前模式

        1. 非当前模式下的其他模式表的查询需要添加前置模式条件
      • create schema dmtest01 authorization SYSDBA
        1. set schema dmtest01
        2. create tbale t_test(id int); 该表创建在dmtest01下
        3. 刚进入disql登录创建表,表会创建在登录用户的默认模式下
      • select * from sys.sysobjects t where t."type$'='sch'
        1. 查询当前系统所有的模式
        2. select a.id schid,a.name schname,b.id userid,b.name username from sys.sysobjects a,sys.sysobjects b where t."type$'='sch' and a.pid=b.id
          1. 查询当前用户所对应的模式
      • 注意:已存在模式的情况下,无法创建同名用户。
        1. 用户的默认模式不可以随意删除。
    • 管理表:
      1. DM中默认是索引表,Oracle默认是堆表
        1. 两者的区别和优势
          1. 索引组织表是有序的,有且仅有一个聚簇索引键(数据查询速度更快)
          2. 插入有序:创建表时可以指定聚簇索引键如果不指定,默认ROWID将作为聚簇索引见,索引组织表rowid是逻辑rowid。DM中老版本创建表时指定主键,即主键时聚簇索引键(PK_WITH)
        2. 堆表:
          1. 数据为无需的,插入也是无序插入,因此堆表插入的时候效率高,并发插入效率也高。堆表的rowid是物理rowid,由页数决定,不占用存储空间,因此也更加节约空间。
      2. 用户表:
        1. 用户自己维护的表
      3. 系统表:
        1. 由Dm Server创建的和维护的表的集合
        2. 包含数据库信息
      4. 数据类型:
        1. DM DateTime 只有年月日 没有时分秒

      1. 创建表:
        1. create table t_testpid (pid int ,pname varchar(30), sex bit ,email varchar(50)) tablespace tbs;
        2. create table t_emp as select * from dmhr.employee;
          1. 从员工表获取数据
          2. 只有表结构,不附带约束信息
        3. create table t_emptab like dmhr.employee
          1. 从员工表获取数据
          2. 只有表结构,不附带约束信息
            1. 原因:该参数取0时,不带约束信息
            2. 该参数取1时,附带约束信息

        1. create table t_ emptabl as select * from dmhr.employee where 1=0

      1. 添加列

      1. 删除表
        1. 删除表在DM中DDL语言中是会默认自动提交的。因此一定要谨慎操作

    1. 管理约束
      1. 约束类型:
        1. NOT NULL:非空
        2. UNIQUE:唯一
        3. Primary key:一个表只能有一个主键,唯一且非空
        4. foreign key:外键引用另一张表的主键或者唯一键
        5. check:用于数据校验
      2. 添加约束

      1. 删除约束

      1. 禁用约束和启用约束

      1. 约束的添加

      1. 创建外键
        1. 建表

        1. 添加约束

      1. 查看约束信息
        1. select * from sys.dba_constraints t where t.owner='dmtest';

    1. 管理视图
      1. 视图时通过一个固定的角度进行查表的方式
      2. 创建视图
        1. 创建视图前赋予该表查询条件
        2. 需要修改时 将create view后加上 or replace

      1. 修改视图

      1. 删除视图

      1. what?视图提供了一个select查询语句,视图中只保存查询语句,并不保存数据。
      2. when?当提供给别的用户查询信息,利用试图可以过滤掉敏感数据
      3. why?可以简化查询语句
      4. how?create or replace view
    • 管理索引
      1. 索引分类:
        1. 聚簇索引、二级索引(B树索引)、位图索引、函数索引、全文索引、复合索引
        2. 该部分内容只专注于二级索引
      2. what?索引是相当于一个数据目录,通过指针的方法加速查询速度。索引和表都是相互独立的,因此都占用表空间,服务器自动使用和维护索引。DML操作时,会根据生成最优计划选择执行计划。
      3. why?为了加快查询速度
      4. when?大表中需要查询少量的数据,在查询列上创建索引。多表关联,关联列可以创建索引。
        1. 如果是要查询全表的数据时,不建议使用索引。
      5. how?
      6. 创建索引:
        1. select * from dmtest.t_tmp t where t.employee_name='mxm';
          1. 执行计划中最后走的全表扫描

        1. craete index ix_emp_name on T_EMP(employee_name);
          1. 创建索引后执行计划飞快

      1. 索引中存在的是索引的键值,在sql执行的过程中,优化器会根据最优的办法进行选择
        1. 因此:该语句时索引扫描,此时,索引被当做一个小表进行使用

      1. 创建索引

        1. 指定表空间

      1. 索引数据字典
        1. select * from dba_tables t where t.OWNER='dmtest'
        2. select * from dba_tab_columns t where t.owner='dmtest'
        3. alter index ix_emp_name rebuild online
          1. 联机重建索引
        4. alter index ix_emp_name monitoring usage;
          1. 打开索引监控

具体链接:有道云笔记

其他有关技术分享,请参考达梦技术服务平台:eco.dameng.com

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/648036
推荐阅读
相关标签
  

闽ICP备14008679号