ITPub博客

首页 > 数据库 > Oracle > oracle基础入门(转)

oracle基础入门(转)

原创 Oracle 作者:post0 时间:2007-08-14 22:05:59 0 删除 编辑
oracle基础入门(转)[@more@]

  一、ORACLE的表的分类:

  1、REGULAR TABLE:普通表,ORACLE推荐的表,使用很方便,人为控制少。

  2、PARTITIONED TABLE:分区表,人为控制记录的分布,将表的存储空间分为若干独立的分区,记录按一定的规则存储在分区里。适用于大型的表。

  

  二、建表

  1 CREATE TABLE 表名 (EMPNO NUMBER(2),NAME VARCHAR2(20)) PCTFREE 20 PCTUSED 50

  STORAGE (INITIAL 200K NEXT 200K MAXEXTENTS 200 PCTINCREASE 0) TABLESPACE 表空间名称

  [LOGGING|NOLOGGING]所有的对表的操作都要记入REDOLOG,ORACLE建议使用NOLOGGING;

  [CACHE|NOCACHE]:是否将数据按照一定的算法写入内存。

  2、关于PCTFREE 和PCTUSED

  A、行迁移和行链接

  B、PCTFREE:制止INSERT,为 UPDATE留FREE 空间

  C、PCTUSED:为恢复INSERT操作,而设定的。

  

  三、拷贝一个已经存在的表:

  CREATE TABLE 新表名 STORAGE(。。) TABLESPACE 表空间

  AS SELECT * FROM 老表名 ;

  当老表存在约束,触发的时候,不会拷过去。

  

  四、修改表的参数

  ALTER TABLE 名称 PCTFREE 20 PCTUSED 50 STOAGE(MAXEXTENTS 1000);

  

  五、手工分配空间:

  

  ALTER TABLE 名称 ALLOCATE EXTENT(SIZE 500K DATAFILE '。。');

  

  1、SIZE选项,按照NEXT分配

  2、表所在表空间与所分配的数据文件所在的表空间必须一样。

  

  六、水线

  1、水线定义了表的数据在一个BLOCK中所达到的最高的位置。

  2、当有新的记录插入,水线增高

  3、当删除记录时,水线不回落

  4、减少查询量

  

  七、如何回收空间:

  ALTER TABLE 名称 DEALLOCATE UNUSED [KEEP 4[M|K]]

  1、当空间分配过大时,可以使用本命令

  2、如果没有加KEEP,回收到水线

  3、如果水线《MINEXTENTS的大小回收到MINEXTENTS所指定的大小

  

  八、TRUNCATE 一个表

  TRUNCATE TABLE 表名,表空间截取MINEXTENT,同时水线重置。

  

  九、DROP 一个表

  DROP TABLE 表名 [CASCADE CONSTRAINTS]

  当一个表含有外键的时候,是不可以直接DROP的,加CASCADE CONSRIANTS将外键等约束一并删掉。

  

  十、信息获取

  1、dba_object

  2 dba_tables:建表的参数

  3 DBA_SEGMENTS:

  组合查询的连接字段:DBA_TABLES的table_name+dba_ojbect的object_name+dba_segments的SEGMENT_NAME

  

  第十一章:索引的管理

  一、索引的分类:

  1、逻辑上:

  单列索引 复合索引 唯一索引 非唯一索引

  2、物理上:

  B-TREE OR BITMAP

  B-TREE (NORMAL和反向索引)

  

  二、CREATE INDEX

  CREATE INDEX 名称 ON 表名(列名) PCTFREE 30 STORAGE(。。。。。) TABLESPACE 名称

  没有定义PCTUSED:索引是按照一定存储的,如果通过PCTUSED允许恢复对BLOCK的INSERT操作,可能影响INDEX的效率。

  

  三、建立索引的注意事项

  1、索引对查询性能有提高,但对DML语句有影响。

  2、索引也应该放在一个专用的表空间

  3、定义索引的EXTENT的大小时,=5*DB BLOCK

  4、建立索引时,应采用 NOLOGGING

  方式。

  四、修改索引

  ALTER INDEX 名称 STORAGE(新值)

  

  五、分配空间给索引

  1、ALTER INDEX 名称 ALLOCATE EXTENT(SIZE 200K DATAFILE '。。')

  

  六、重建索引

  1、提高查询性能

  2、当一个索引重建时,老的索引会在新索引建立完成后,被删除。

  3、新索引建立过程中,老的索引仍可用于查询。

  4、硬盘的开销大,

  

  七、DROP一个索引

  DROP INDEX 名称

  

  八、信息获取

  1、DBA_INDEXES:建索引的参数

  2、DBA_IND_COLUMNS:

  

  第十二章:用户的管理

  一、ORACLE的安全域

  1、TABLESPACE QUOTAS:表空间的使用定额

  2、DEFAULT TABLESPACE:默认表空间

  3、TEMPORARY TABLESPACE:指定临时表空间。

  4、ACCOUNT LOCKING:用户锁

  5、RESOURCE LIMITE:资源限制

  6、DIRECT PRIVILEGES:直接授权

  7、ROLE PRIVILEGES:角色授权先将应用中的用户划为不同的角色,

  二、创建用户时的清单:

  1、选择一个用户名称和检验机制:A,看到用户名,实际操作者是谁,业务中角色。

  2、选择合适的表空间:

  3、决定定额:

  4、口令的选择:

  5、临时表空间的选择:先建立一个临时表空间,然后在分配。不分配,使用SYSTEM表空间

  6、CREATE USER

  7、授权:A,用户的工作职能

  B,用户的级别

  三、用户的创建:

  1、命令:

  CREATE USER 名称 IDENTIFIED BY 口令 DEFAULT TABLESPACE 默认表空间名 TEMPOARAY

  TABLESPACE 临时表空间名

  QUOTA 15M ON 表空间名

  [PASSWORD EXPIRE]:当用户第一次登陆到ORACLE,创建时所指定的口令过期失效,强迫用户自己定义一个新口令。

  [ACCOUNT LOCK]:加用户锁

  QUOTA UNLIMITED ON TABLESPACE:不限制,有多少有多少。

  [PROFILE 名称]:受PROFILE文件的限制。

  

  四、如何控制用户口令和用户锁

  1、强迫用户修改口令:ALTER USER 名称 IDENTIFIED BY 新口令 PASSWORD EXPIRE;

  2、给用户加锁:ALTER USER 名称 ACCOUNT [LOCK|UNLOCK]

  3、注意事项:

  A、所有操作对当前连接无效

  B、1的操作适用于当用户忘记口令时。

  

  五、更改定额

  1、命令:ALTER USER 名称 QUOTA 0 ON 表空间名

  ALTER USER 名字 QUOTA (数值)K|M|UNLIMITED ON 表空间名;

  2、使用方法:

  A、控制用户数据增长

  B、当用户拥有一定的数据,而管理员不想让他在增加新的数据的时候。

  C、当将用户定额设为零的时候,用户不能创建新的数据,但原有数据仍可访问。

  

  六、DROP一个USER

  1、DROP USER 名称

  适合于删除一个新的用户

  2、DROP USER 名称 CASCADE: 删除一个用户,将用户的表,索引等都删除。

  3、对连接中的用户不好用。

  

  

  七、信息获取:

  1、DBA_USERS:用户名,状态,加锁日期,默认表空间,临时表空间

  2、DBA_TS_QUOTAS:用户名,表空间名,定额。

  两个表的连接字段:USERNAME

  GRANT CREATE SESSION TO 用户名

  

  

  第十三章:PROFILE的管理(资源

  文件)

  一、PROFILE的管理内容:

  1、CPU的时间

  2、I/O的使用

  3、IDLE TIME(空闲时间)

  4、CONNECT TIME(连接时间)

  5、并发会话数量

  6、口令机制:

  

  二、DEFAULT PROFILE:

  1、所有的用户创建时都会被指定这个PROFILE

  2、DEFAULT PROFILE的内容为空,无限制

  

  三、PROFILE的划分:

  1、CALL级LIMITE:

  对象是语句:

  当该语句资源使用溢出时:

  A、该语句终止

  B、事物回退

  C、SESSION连接保持

  2、SESSION级LIMITE:

  对象是:整个会话过程

  溢出时:连接终止

  

  四、如何管理一个PROFILE

  1、CREATE PROFILE

  2、分配给一个用户

  3、象开关一样打开限制。

  

  五、如何创建一个PROFILE:

  1、命令:CREATE PROFILE 名称

  LIMIT

  SESSION_PER_USER 2

  CPU_PER_SESSION 1000

  IDLE_TIME 60

  CONNECT_TIME 480

  六、限制参数:

  1、SESSION级LIMITE:

  CPU_PER_SESSION:定义了每个SESSION占用的CPU的时间: (1/100 秒)

  2、SESSION_PER_USER:每个用户的并发连接数

  3、CONNECT_TIME:一个连接的最长连接时间(分钟)

  4、LOGICAL_READS_PER_SESSION: 一次读写的逻辑块的数量

  5、CALL级LIMITE

  CPU_PER_CALL:每个语句占用的CPU时间

  

  LOGICAL_READS_PER_CALL:

  

  七、分配给一个用户:

  CREATE USER 名称。。。。。。

  PROFILE 名称

  ALTER USER 名称 PROFILE 名称

  

  八、打开资源限制:

  1、RESOURCE_LIMT:资源文件中含有

  2、ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;

  3、默认不打开

  

  九、修改PROFIE的内容:

  1、ALTER PROFILE 名称参数 新值

  2、对于当前连接修改不生效。

  

  

  十、DROP一个PROFILE

  1、DROP PROFILE 名称

  删除一个新的尚未分配给用户的PROFILE,

  2、DROP PROFILE 名称 CASCADE

  3、注意事项

  A、一旦PROFILE被删除,用户被自动加载DEFAULT PROFILE

  B、对于当前连接无影响

  C、DEFAULT PROFILE不可以被删除

  十一、信息获取:

  1、DBA_USERS:

  用户名,PROFILE

  2、DBA_PROFILES:


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8225414/viewspace-957125/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    2018
  • 访问量
    8225055