Orancle

DML锁可以分为,行锁,表级锁,死锁。
DDL锁可以分为,排他DDL锁,共享DDL锁,分析锁。

锁是数据库用来控制共享资源并发访问的机制。
锁用于保护正在被修改的数据。
直到提交或回滚了事务之后,其他用户才可以更新数据。

锁定的优点:一致性和完整性。并行性
行级锁和表级锁。
使用commit或rollback语句释放锁。

--表拥有者执行加锁查询
--select * from emp where empno = '7369' for update wait 5;

--select * from emp where empno = '7369' for update nowait;

commit;

--for update of 专用于连接查询中锁定某一个或是某几个表。


-表拥有者对表进行共享锁定
--lock table emp in share mode;

select * from emp where empno='7369'

--rollback;


--共享更新
--lock table emp in share update mode;

select * from scott.emp where empno = '7369';

--排他锁
--lock table emp in exclusive mode;

--rollback;

--分区查询--
select * from student partition(p1);
select * from student partition(p2);
select * from student partition(p3);
select * from student partition(p4);

#列表分区#
create table student2(
  stu_name varchar2(8),
  stu_age number(2),
  stu_address varchar2(12)
)
#复合分区#
范围分区与散列分区或列表分区的组合。
CREATE TABLE SALES
(
    PRODUCT_ID VARCHAR2 (5),
    SALES_DATE DATE NOT NULL,
    SALES_COST NUMBER (10)
)
PARTITION BY RANGE (SALES_DATE)
SUBPARTITION BY HASH (PRODUCT_ID)
SUBPARTITIONS 5 
(
    PARTITION S1 VALUES LESS THAN (TO_DATE(‘01/4月/2001',
    'DD/MON/YYYY')),
    PARTITION S2 VALUES LESS THAN (TO_DATE(‘01/7月/2001',
    'DD/MON/YYYY')),
    PARTITION S3 VALUES LESS THAN (TO_DATE(‘01/9月/2001',
    'DD/MON/YYYY')),
    PARTITION S4 VALUES LESS THAN (MAXVALUE)
);

##表分区维护##
--删除分区-- 删除一个指定的分区,分区的数据也随之删除。
--alter table student drop partition p4;

--增加分区--
--alter table student add partition p5 values less than(90);

--截断分区-- 删除指定分区中的所有记录
--alter table student truncate partition p3;
--合并分区--  ORA-14012: 结果分区名与现有分区名发生冲突, p6新的分区名。
alter table student merge partitions p1,p2 into partition p6;

--拆分分区--
alter

猜你喜欢

转载自blog.csdn.net/destiny_so_far/article/details/79797099