《Oracle数据库应用与开发》第03章[锁和分区表]理论

上传人:hao****an 文档编号:253333220 上传时间:2024-12-11 格式:PPT 页数:29 大小:498.51KB
收藏 版权申诉 举报 下载
《Oracle数据库应用与开发》第03章[锁和分区表]理论_第1页
第1页 / 共29页
《Oracle数据库应用与开发》第03章[锁和分区表]理论_第2页
第2页 / 共29页
《Oracle数据库应用与开发》第03章[锁和分区表]理论_第3页
第3页 / 共29页
资源描述:

《《Oracle数据库应用与开发》第03章[锁和分区表]理论》由会员分享,可在线阅读,更多相关《《Oracle数据库应用与开发》第03章[锁和分区表]理论(29页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,锁和表分区,Oracle数据库应用与开发,第,03,章,回顾,SQL,是数据库语言,,Oracle,使用该语言在数据库中存储和检索信息,Oracle,支持各种数据类型,如,VARCHAR2,、,NUMBER,、,LONG,、,RAW,和,D,ATE,等,数据操纵语言用于查询和修改表中的数据,事务控制语言管理事务的一致性,SQL,操作符包括算术、比较、逻辑、集合和连接操作符,SQL,函数可以大致分为单行函数、聚合函数和分析函数,目标,理解锁定的概念,了解和使用表分区,锁的概念,2-1,锁是数据库用来控

2、制共享资源并发访问的机制。,锁用于保护正在被修改的数据,直到提交或回滚了事务之后,其他用户才可以更新数据,锁的概念,2-2,修改表,修改表,拒绝访问,Toy_ID,Name,Price,T001,Barbie,20,T002,GI Joe,45,锁定的优点,一致性,-,一次只允许一个用户修改数据,完整性,-,为所有用户提供正确的数据。如果一个用户进行了修改并保存,所做的修改将反映给所有用户,并行性,允许多个用户访问同一数据,Toy_ID,Name,Price,T001,Barbie,20,T002,GI Joe,45,修改表中,的数据,查看表中的数据,允许访问,表级锁,行级锁,锁的类型,锁的类

3、型,行级锁,3-1,Toy_ID,Name,Price,T001,Barbie,20,T002,GI Joe,45,更新,T00,2,行,更新,T001,行,行被锁定,对正在被修改的行进行锁定。其他用户可以访问除被锁定的行以外的行,允许访问,行级锁,3-2,行级锁是一种排他锁,防止其他事务修改此行,在使用以下语句时,,Oracle,会自动应用行级锁:,INSERT,UPDATE,DELETE,SELECT FOR UPDATE,SELECT FOR UPDATE,语句允许用户一次锁定多条记录进行更新,使用,COMMIT,或,ROLLBACK,语句释放锁,行级锁,3-3,SELECT FOR U

4、PDATE,语法,:,SELECT FOR UPDATE OF columnsWAIT n|NOWAIT;,SQL SELECT*FROM,order_master,WHERE,vencode,=V002,FOR UPDATE OF,odate,del_date,;,SQL UPDATE,order_master,SET,del_date,=28-8,月,-05,WHERE,vencode,=V002;,SQL COMMIT;,SQL SELECT*FROM,order_master,WHERE,vencode,=V002,FOR UPDATE WAIT 5;,SQL SELECT*FROM,

5、order_master,WHERE,vencode,=V002,FOR UPDATE NOWAIT;,表级锁,3-1,Toy_ID,Name,Price,T001,Barbie,20,T002,GI Joe,45,修改表中的行,更新表,拒绝访问,锁定整个表,限制其他用户对表的访问。,表级锁,3-2,表级锁类型,行共享,行排他,共享,使用命令显示地锁定表,应用表级锁的语法是,:,LOCK TABLE,table_name,IN mode,MODE,;,共享行排他,排他,表级锁,3-3,行共享,(ROW SHARE),禁止排他锁定表,行排他,(ROW EXCLUSIVE),禁止使用排他锁和共享锁

6、,共享锁,(SHARE),锁定表,仅允许其他用户查询表中的行,禁止其他用户插入、更新和删除行,多个用户可以同时在同一个表上应用此锁,共享行排他,(SHARE ROW EXCLUSIVE),比共享锁更多的限制,禁止使用共享锁及更高的锁,排他,(EXCLUSIVE),限制最强的表锁,仅允许其他用户查询该表的行。禁止修改和锁定表,死锁,当两个事务相互等待对方释放资源时,就会形成死锁,Oracle,会自动检测死锁,并通过结束其中的一个事务来解决死锁,右边是一个死锁的例子,T,1,T,2,lock,(D,1,),时间,lock,(D,2,),lock,(D,2,),lock,(D,1,),等待,等待,表

7、分区,允许用户将一个表分成多个分区,用户可以执行查询,只访问表中的特定分区,将不同的分区存储在不同的磁盘,提高访问性能和安全性,可以独立地备份和恢复每个分区,Name,Address,State,Country,John Smith,34,th,Rd.,California,US,Micheal,Clarke,LK Rd.,New York,US,Jack Jones,9,th,Road,California,US,Bob Simmons,12,th,Street,New York,US,Jim Taylor,53,rd,Road,New York,US,更新表,只访问,P1,P1,分区,P,

8、2,分区,表分区的类型,9-1,分区方法,范围分区,散列分区,列表分区,复合分区,表分区的类型,9-2,范围分区,以表中的一个列或一组列的值的范围分区,范围分区的语法:,PARTITION BY RANGE(,column_name,),(,PARTITION part1 VALUES LESS THAN(range1),PARTITION part2 VALUES LESS THAN(range2),.,PARTITION,partN,VALUES LESS THAN(MAXVALUE),);,表分区的类型,9-3,SQL CREATE TABLE Sales,(,Product_ID va

9、rchar2(5),Sales_Cost number(10),),PARTITION BY RANGE(Sales_Cost),(,PARTITION P1 VALUES LESS THAN(1000),PARTITION P2 VALUES LESS THAN(2000),PARTITION P3 VALUES LESS THAN(3000),);,根据,Sales_Cost,创建分区,分区的名称,包含销售成本低于,1000,的所有产品的值,SQL CREATE TABLE SALES2(,PRODUCT_ID VARCHAR2(5),SALES_DATE DATE NOT NULL,SA

10、LES_COST NUMBER(10),PARTITION BY RANGE(SALES_DATE),(,PARTITION P1 VALUES LESS THAN(DATE 2003-01-01),PARTITION P2 VALUES LESS THAN(DATE 2004-01-01),PARTITION P3 VALUES LESS THAN(MAXVALUE),);,范围分区示例,表分区的类型,9-4,散列分区,允许用户对不具有逻辑范围的数据进行分区,通过在分区键上执行,HASH,函数决定存储的分区,将数据平均地分布到不同的分区,散列分区语法,PARTITION BY HASH(,c

11、olumn_name,),PARTITIONS,number_of_partitions,;,或,PARTITION BY HASH(,column_name,),(PARTITION part1 TABLESPACE tbs1,PARTITION part2 TABLESPACE tbs2,.,PARTITION,partN,TABLESPACE,tbsN,);,表分区的类型,9-5,散列分区示例,SQL CREATE TABLE Employee,(,Employee_ID varchar2(5),Employee_Name varchar2(20),Department varchar2

12、(10),),PARTITION BY HASH(Department),(,Partition D1,Partition D2,Partition D3,);,在表,Employee,上创建分区键,Department,分区的名称,创建,3,个分区,SQL CREATE TABLE EMPLOYEE,(,EMP_ID NUMBER(4),EMP_NAME VARCHAR2(14),EMP_ADDRESS VARCHAR2(15),DEPARTMENT VARCHAR2(10),),PARTITION BY HASH(DEPARTMENT),PARTITIONS 4;,表分区的类型,9-6,列

13、表分区,允许用户将不相关的数据组织在一起,列表分区的语法:,PARTITION BY LIST(,column_name,),(,PARTITION part1 VALUES(values_list1),PARTITION part2 VALUES(values_list2),.,PARTITION,partN,VALUES(DEFAULT),);,表分区的类型,9-7,SQL CREATE TABLE Employee,(,Emp_ID,number(4),Emp_Name varchar2(14),Emp_Address varchar2(15),),PARTITION BY LIST(E

14、mp_Address),(,Partition north values(,芝加哥,),Partition west values(,旧金山,洛杉矶,),Partition south values(,亚特兰大,达拉斯,休斯顿,),Partition east values(,纽约,波斯顿,),);,包含住在芝加哥的职员的记录,根据职员住址在表上创建的列表分区,分区的名称,列表分区示例,表分区的类型,9-8,复合分区,范围分区与散列分区或列表分区的组合,复合分区的语法:,PARTITION BY RANGE(column_name1),SUBPARTITION BY HASH(column_n

15、ame2),SUBPARTITIONS,number_of_partitions,(,PARTITION part1 VALUE LESS THAN(range1),PARTITION part2 VALUE LESS THAN(range2),.,PARTITION,partN,VALUE LESS THAN(MAXVALUE),);,表分区的类型,9,-,9,SQL CREATE TABLE SALES,(,PRODUCT_ID VARCHAR2(5),SALES_DATE DATE NOT NULL,SALES_COST NUMBER(10),),PARTITION BY RANGE(S

16、ALES_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),);,创建的四个范围分区的名称,在表的,Sales_Date,列中创建范围分区,在表的,Product_ID,列创建散列子分区,在每个范围分区中,创建,5,个散列子分区,复合分区示例,操纵已分区的表,在已分区的表中插入数据与操作普通表完全相同,,Oracle,会自动将数据保存到对应的分区,查询、修改和删除分区表时可以显式指定要操作的分区,INSERT INTO SALES3 VALUES(P001,02-3,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!