Oracle Concept读书笔记(一)

来源:互联网 发布:如何玩转淘宝 编辑:程序博客网 时间:2024/04/30 03:33

分区

1 分区策略

1)   范围分区

CREATE TABLE time_range_sales 

  ( prod_id        NUMBER(6)    ,

cust_id        NUMBER    ,

time_id        DATE    ,

channel_id     CHAR(1)    ,

promo_id       NUMBER(6)    ,

quantity_sold  NUMBER(3)    ,

amount_sold    NUMBER(10,2)    )

PARTITION BY RANGE (time_id)  ( /*以time id字段分区*/

PARTITION SALES_1998 VALUES LESS THAN (TO_DATE('01-JAN-1999','DD-MON-YYYY')),   /*time id 小于01 JAN 1999 为分区SALES_1998*/

PARTITION SALES_1999 VALUES LESS THAN (TO_DATE('01-JAN-2000','DD-MON-YYYY')), /*time id 小于01 JAN 2000 为分区SALES_1999*/

PARTITION SALES_2000 VALUES LESS THAN (TO_DATE('01-JAN-2001','DD-MON-YYYY')), /*time id 小于01 JAN 2001 为分区SALES_2000*/

PARTITION SALES_2001 VALUES LESS THAN (MAXVALUE)  );/*其他 为分区SALES_2001*/

2)列表分区

CREATE TABLE list_sales   

( prod_id        NUMBER(6)    ,

cust_id        NUMBER    ,

time_id        DATE    ,

channel_id     CHAR(1)    ,

promo_id       NUMBER(6)    ,

quantity_sold  NUMBER(3)    ,

amount_sold    NUMBER(10,2)    )

PARTITION BY LIST (channel_id)  (/*以channel id字段分区*/

PARTITION even_channels VALUES (2,4),    /*channel id 为2或4的为分区even_channels */

PARTITION odd_channels VALUES (3,9)  )/*channel id 为3或9的为分区odd_channels */

3) 哈希分区

根据哈希算法决定所在的分区。当您插入行时,数据库会尝试随机、 均匀地将它们分布在各个分区之间。 您不能指定某行被放置在哪一个分区。数据库应用哈希函数,其结果确定由 哪个分区包含此行。如果重新更改了分区数目,那么数据库会在所有分区上 重新分布数据

CREATE TABLE hash_sales    (

prod_id        NUMBER(6)    ,

cust_id        NUMBER    ,

time_id        DATE    ,

channel_id     CHAR(1)    ,

promo_id       NUMBER(6)    ,

quantity_sold  NUMBER(3)    ,

amount_sold    NUMBER(10,2)    )

PARTITION BY HASH (prod_id)

PARTITIONS 2;



事物控制语句 example

SET TRANSACTION NAME 'Update salaries';   //事务
SAVEPOINT before_salary_update;  //设置事务回滚点
UPDATE employees SET salary=9100 WHERE employee_id=1234 # DML  //update
ROLLBACK TO SAVEPOINT before_salary_update;  //回滚到之前设定的回滚点
UPDATE employees SET salary=9200 WHERE employee_id=1234 # DML  //update
COMMIT COMMENT 'Updated salaries'; //commit提交update


系统控制语句

唯一的系统控制语句是 ALTER SYSTEM。

example:

ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM KILL SESSION '39, 23';
ALTER SYSTEM 语句不会隐式提交当前事务


嵌入式的 SQL 语句

定义、 分配、和释放游标 (DECLARE CURSOR, OPEN, CLOSE)。
 指定一个数据库,并连接到该数据库(DECLARE DATABASE, CONNECT)。
 分配变量名称 (DECLARE STATEMENT)。
 初始化描述符(DESCRIBE)
指定如何处理错误和警告(WHENEVER)。
分析并运行 SQL 语句 (PREPARE, EXECUTE, EXECUTE IMMEDIATE)。
从数据库中检索数据(FETCH)


0 0
原创粉丝点击