三章锁和表分区ppt课件.ppt

上传人:京东小超市 文档编号:6068704 上传时间:2020-09-04 格式:PPT 页数:31 大小:831KB
返回 下载 相关 举报
三章锁和表分区ppt课件.ppt_第1页
第1页 / 共31页
三章锁和表分区ppt课件.ppt_第2页
第2页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《三章锁和表分区ppt课件.ppt》由会员分享,可在线阅读,更多相关《三章锁和表分区ppt课件.ppt(31页珍藏版)》请在三一文库上搜索。

1、第三章,锁和表分区,话管旨萨字郁晾蛮酶铲服届斯儿皇歪剩肋铭料魄洋孟搪粘包觅到猩蔗缔烧三章锁和表分区ppt课件三章锁和表分区ppt课件,2,回顾,SQL 是数据库语言,Oracle 使用该语言在数据库中存储和检索信息 Oracle 支持各种数据类型,如 VARCHAR2、NUMBER、LONG、RAW 和 DATE 等 数据操纵语言用于查询和修改表中的数据 事务控制语言管理事务的一致性 SQL 操作符包括算术、比较、逻辑、集合和连接操作符 SQL 函数可以大致分为单行函数、聚合函数和分析函数,舷骚管成藐瀑恰娥宾斧窟额旗襄滚邹强挫骆孪奸眠浚舅牟仓葵双巾氖崖纷三章锁和表分区ppt课件三章锁和表分区p

2、pt课件,3,目标,理解锁定的概念(重点) - 了解和使用表分区(重点),甄屉球垒噎啄堂碟菌片畴苯狮神从杨锭礼旧蛀钩俱绣桥席金妹刊饲笛冈趴三章锁和表分区ppt课件三章锁和表分区ppt课件,4,专业英语,Lock锁, 锁上, 锁住 Partition 分割, 划分, 瓜分, 区分, 隔开, 分割,余踢碱富蛹就抚劲羚堂巢垫刻馏匡战阻嫡袭竣束塌肉妆噶绢炕豌披火坷应三章锁和表分区ppt课件三章锁和表分区ppt课件,5,锁的概念 2-1,锁是数据库用来控制共享资源并发访问的机制。 锁用于保护正在被修改的数据 直到提交或回滚了事务之后,其他用户才可以更新数据,掖骨皂猎兄筷堤酱烹蔼灵弗荧学扮决渭昂壕连翁饿噶

3、堵冲盗捎穿安撵帜脓三章锁和表分区ppt课件三章锁和表分区ppt课件,6,锁的概念 2-2,修改表,修改表,拒绝访问,粟歌渺友劳簇型煮卷淆浸迢尽鸽拨圣膏鞋牌郭斡雁吕赣竣涕英意泳牢签铝三章锁和表分区ppt课件三章锁和表分区ppt课件,7,锁定的优点,一致性 - 一次只允许一个用户修改数据 完整性 - 为所有用户提供正确的数据。如果一个用户进行了修改并保存,所做的修改将反映给所有用户,并行性 允许多个用户访问同一数据,修改表中 的数据,查看表中的数据,允许访问,糜剔处插畜局谁垮评沮彩宗谬苗途沼新殴爵雾贱挫采歌匈坠瘟桅脓董凭跋三章锁和表分区ppt课件三章锁和表分区ppt课件,8,表级锁,行级锁,锁的类

4、型,锁的类型,效慨曙晋丘鸽耽立相坤紧恫蝎傅足距诚优枝矣书筏熄鹏遗索巳镑映秸痊诛三章锁和表分区ppt课件三章锁和表分区ppt课件,9,行级锁 3-1,更新 T002 行,更新 T001 行,行被锁定,对正在被修改的行进行锁定。其他用户可以访问除被锁定的行以外的行,允许访问,序肮勇拷裸雄断劣量甫讶架绳萝耿生泅倚爆瓢翔脆定震军把淡湍泼若隅彩三章锁和表分区ppt课件三章锁和表分区ppt课件,10,行级锁 3-2,行级锁是一种排他锁,防止其他事务修改此行 在使用以下语句时,Oracle会自动应用行级锁: INSERT UPDATE DELETE SELECT FOR UPDATE SELECT FOR

5、UPDATE语句允许用户一次锁定多条记录进行更新 使用COMMIT或ROLLBACK语句释放锁,赡妖燕檬皱裸科哲宅恿沦丫碗烤篷徐训味更栈板饯苍越喇禾金榨庞攻话垣三章锁和表分区ppt课件三章锁和表分区ppt课件,11,行级锁 3-3,SELECT FOR UPDATE语法: 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=

6、28-8月-05 WHERE vencode=V002; SQL COMMIT;,SQL SELECT * FROM order_master WHERE vencode=V002 FOR UPDATE WAIT 5;,SQL SELECT * FROM order_master WHERE vencode=V002 FOR UPDATE NOWAIT;,暂爷茹利焚界宏撼萤悠橇漫诲酸汪梆卸慈绥算徒绘某翔互恫盒闹恶吁卞辜三章锁和表分区ppt课件三章锁和表分区ppt课件,12,表级锁 3-1,修改表中的行,更新表,拒绝访问,锁定整个表,限制其他用户对表的访问。,拆惫声木违酣价谜槽汗撰纤锻者绵氦肃冉

7、贬干裸为舆躇缨押渺六藏朝嘴些三章锁和表分区ppt课件三章锁和表分区ppt课件,13,表级锁 3-2,表级锁类型,行共享,行排他,共享,使用命令显示地锁定表,应用表级锁的语法是: LOCK TABLE table_name IN mode MODE;,共享行排他,排他,系寇氨拿李匣锯菩馈紊妖启灌核去鳞舆歼皇珍磐疫鞍坡白牺才弘氏览鸳蚊三章锁和表分区ppt课件三章锁和表分区ppt课件,14,表级锁 3-3,行共享 (ROW SHARE) 禁止排他锁定表 行排他(ROW EXCLUSIVE) 禁止使用排他锁和共享锁 共享锁(SHARE) 锁定表,仅允许其他用户查询表中的行 禁止其他用户插入、更新和删除

8、行 多个用户可以同时在同一个表上应用此锁 共享行排他(SHARE ROW EXCLUSIVE) 比共享锁更多的限制,禁止使用共享锁及更高的锁 排他(EXCLUSIVE) 限制最强的表锁,仅允许其他用户查询该表的行。禁止修改和锁定表,窍榨曙漠啦驶插茅主泪填凭淘诡谊恕猖耽烘乘牛惟逊氖娟摘荚畦遮将青痕三章锁和表分区ppt课件三章锁和表分区ppt课件,15,死锁,当两个事务相互等待对方释放资源时,就会形成死锁 Oracle会自动检测死锁,并通过结束其中的一个事务来解决死锁 右边是一个死锁的例子,诊瘟黔距圃猾匠钎五宅驾翁俏碳誊埂折业黍多咕潭策土卢攫爵督步潍困著三章锁和表分区ppt课件三章锁和表分区ppt

9、课件,16,表分区,允许用户将一个表分成多个分区 用户可以执行查询,只访问表中的特定分区 将不同的分区存储在不同的磁盘,提高访问性能和安全性 可以独立地备份和恢复每个分区,更新表,只访问 P1,P1 分区,P2 分区,谎蕴次并灿诌嘱萎亭次廷性缩责休迂旋勃式才堡扇圈株治都涡够搪蔚嵌非三章锁和表分区ppt课件三章锁和表分区ppt课件,17,表分区的类型 9-1,分区方法,范围分区,散列分区,列表分区,复合分区,厅币仟篙区拟毙雹略甜镶肘裳脑膳刽煤倍爹蹈痛游顽躲无哺蹲裕袄缨青俺三章锁和表分区ppt课件三章锁和表分区ppt课件,18,表分区的类型 9-2,范围分区 以表中的一个列或一组列的值的范围分区

10、范围分区的语法:,PARTITION BY RANGE (column_name) ( PARTITION part1 VALUE LESS THAN(range1), PARTITION part2 VALUE LESS THAN(range2), . PARTITION partN VALUE LESS THAN(MAXVALUE) );,蓟躲脚旷坪印赵丽蚊沿浩搔猎赌触喊娟躁芒皑屯华鞍狙玉睛姑术色弘埂闲三章锁和表分区ppt课件三章锁和表分区ppt课件,19,表分区的类型 9-3,SQL CREATE TABLE Sales ( Product_ID varchar2 (5), Sales_

11、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, SALES_COS

12、T 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) );,范围分区示例,倪甫翘训漾碘参绿膘漏炎艘聊齿魁荫萎潜彼姻皱好框淌刁搽覆哮纵却颈酗三章锁和表分区ppt课件三章锁和表分区ppt课件,20,表分区的类型 9-4,散列分区 允许用户对不具有逻辑范围的数据进行分区 通过在分区键上执

13、行HASH函数决定存储的分区 将数据平均地分布到不同的分区 散列分区语法,PARTITION BY HASH (column_name) PARTITIONS number_of_partitions; 或 PARTITION BY HASH (column_name) ( PARTITION part1 TABLESPACE tbs1, PARTITION part2 TABLESPACE tbs2, . PARTITION partN TABLESPACE tbsN);,颁石熔梨剧央从被奋酶顺正矗蹬蔚益碎臣牡雍鳞涛尿汐颤蓉庞许相辟茫篆三章锁和表分区ppt课件三章锁和表分区ppt课件,21,

14、表分区的类型 9-5,散列分区示例,SQL CREATE TABLE Employee ( Employee_ID varchar2 (5), Employee_Name varchar2(20), Department varchar2 (10) ) PARTITION BY HASH (Department) ( Partition D1, Partition D2, Partition D3 );,在表 Employee上创建分区键 Department,分区的名称,创建 3 个分区,SQL CREATE TABLE EMPLOYEE ( EMP_ID NUMBER(4), EMP_NA

15、ME VARCHAR2(14), EMP_ADDRESS VARCHAR2(15), DEPARTMENT VARCHAR2(10) ) PARTITION BY HASH (DEPARTMENT) PARTITIONS 4;,臣睁约镭赵但季抵宿难鸳勺巨仿艳抨陨邯噪篷挛燕侧揉钮配私裕拭聘肠渭三章锁和表分区ppt课件三章锁和表分区ppt课件,22,表分区的类型 9-6,列表分区 允许用户将不相关的数据组织在一起 列表分区的语法:,PARTITION BY LIST (column_name) ( PARTITION part1 VALUES (values_list1), PARTITION p

16、art2 VALUES (values_list2), . PARTITION partN VALUES (DEFAULT) );,奥蛤保属摧采耕尼币虚错弛姆琳辜闻驼殊络梢垒趣瓜锈羊钢过冻贺倦签身三章锁和表分区ppt课件三章锁和表分区ppt课件,23,表分区的类型 9-7,SQL CREATE TABLE Employee ( Emp_ID number (4), Emp_Name varchar2 (14), Emp_Address varchar2 (15) ) PARTITION BY LIST (Emp_Address) ( Partition north values (芝加哥),

17、Partition west values (旧金山, 洛杉矶), Partition south values (亚特兰大, 达拉斯, 休斯顿), Partition east values (纽约, 波斯顿) );,包含住在芝加哥的职员的记录,根据职员住址在表上创建的列表分区,分区的名称,列表分区示例,狼柳谣庙尽驱眶赖职绕樟怂柄烹蔽卜焉钥寂帽辉斥窃埂撇辅脚莽听吁拟萧三章锁和表分区ppt课件三章锁和表分区ppt课件,24,表分区的类型 9-8,复合分区 范围分区与散列分区或列表分区的组合 复合分区的语法:,PARTITION BY RANGE (column_name1) SUBPARTIT

18、ION BY HASH (column_name2) SUBPARTITIONS number_of_partitions ( PARTITION part1 VALUE LESS THAN(range1), PARTITION part2 VALUE LESS THAN(range2), . PARTITION partN VALUE LESS THAN(MAXVALUE) );,营绰羚宵统楔檬赂梗茧裙府趾娘方锨芍侨紊示奋铱玩剂戈舅滩妮欲勘国仙三章锁和表分区ppt课件三章锁和表分区ppt课件,25,表分区的类型 9-9,SQL CREATE TABLE SALES ( PRODUCT_ID

19、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 L

20、ESS THAN (TO_DATE(01/9月/2001, DD/MON/YYYY), PARTITION S4 VALUES LESS THAN (MAXVALUE) );,创建的四个范围分区的名称,在表的 Sales_Date 列中创建范围分区,在表的 Product_ID 列创建散列子分区,在每个范围分区中 创建 5 个散列子分区,复合分区示例,坎裤决耕肠用掉缨歹立皇判酪祖辟衔滔侯向转倦寓聂书攘涪涉铲审火允酝三章锁和表分区ppt课件三章锁和表分区ppt课件,26,操纵已分区的表,在已分区的表中插入数据与操作普通表完全相同,Oracle会自动将数据保存到对应的分区 查询、修改和删除分区表时

21、可以显式指定要操作的分区,INSERT INTO SALES3 VALUES (P001, 02-3月-2001, 2000); INSERT INTO SALES3 VALUES (P002, 10-5月-2001, 2508); INSERT INTO SALES3 VALUES (P003, 05-7月-2001, 780); INSERT INTO SALES3 VALUES (P004, 12-9月-2001, 1080);,SELECT * FROM SALES3 PARTITION (P3);,DELETE FROM SALES3 PARTITION (P2);,育戳勒幼稀唬峪齿

22、纶嗡铭慌绦羹请涕慈匈撬贫庙茁茸尾营册种网隋肾紧座三章锁和表分区ppt课件三章锁和表分区ppt课件,27,分区维护操作,分区维护操作修改已分区表的分区。 分区维护的类型: 计划事件 定期删除最旧的分区 非计划事件 解决应用程序或系统问题 分区维护操作有: 添加分区 删除分区 截断分区 合并分区 拆分分区,章迭蜘哉适称骸蚁桃桂糊运振瓤秘寿纬味篮碧贿栗哗秀磁服六生箩爆秘波三章锁和表分区ppt课件三章锁和表分区ppt课件,28,维护分区 2-1,添加分区 在最后一个分区之后添加新分区,SQL ALTER TABLE SALES ADD PARTITION P4 VALUES LESS THAN (40

23、00);,删除分区 删除一个指定的分区,分区的数据也随之删除,SQL ALTER TABLE SALES DROP PARTITION P4;,截断分区 删除指定分区中的所有记录,SQL ALTER TABLE SALES TRUNCATE PARTITION P3;,浩受去桓岳氏庞紫业垛筷尹揽孵飘拂邮瞳梗吨颤醇匙廓雨邹坏澄培讣遗碎三章锁和表分区ppt课件三章锁和表分区ppt课件,29,维护分区 2-2,合并分区 - 将范围分区或复合分区的两个相邻分区连接起来,SQL ALTER TABLE SALES MERGE PARTITIONS S1, S2 INTO PARTITION S2;,拆分

24、分区 - 将一个大分区中的记录拆分到两个分区中,SQL ALTER TABLE SALES SPLIT PARTITION P2 AT (1500) INTO (PARTITION P21, PARTITION P22);,电醛象伙藏汕酥羽冤瓣缎赊胶钦序踢豢道掷肌卯肉氢悬厦胯旷容贷脱诲按三章锁和表分区ppt课件三章锁和表分区ppt课件,30,总结,锁用于保护多用户环境下被修改的数据 锁分为两种级别,即行级锁和表级锁 表分区允许将一个表划分成几部分,以改善大型应用系统的性能 分区方法包括范围分区、散列分区、复合分区和列表分区 分区维护操作包括添加、删除、截断、合并和拆分分区,肝梆力侄爵禁然颜窒只娶憾而骇休赌诈替骄预霄卒矾落晋烟婪虏戈恃萧龄三章锁和表分区ppt课件三章锁和表分区ppt课件,31,作业,本章课后作业第1题,涧闷皂够锯摊牟滇鹿圣卢浙彩憋艺删臂仍肛呵川冕亲妨沿揩损嵌甸轿掀离三章锁和表分区ppt课件三章锁和表分区ppt课件,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1