Oracle数据库 锁和表空间

一,锁

  (1)锁的优点

     1. 一致性:一次只允许一个用户修改数据,从而提供统一数据

     2. 完整性:向所有用户提供正确的数据

      3.并发性:允许多个用户访问统一数据

  (2)锁的种类

      锁分为:行级锁和表级锁

   (3)行级锁的使用(又叫排它锁)

      1.语法:select....for update [OF column_list]  [WAIT n  | NOWAIT]

        其中:OF子句用于指定预先被更新的列。

                 WAIT 或 NOWAIT  WAIT字句指定等待其他用户释放锁的秒数,防止无限期等待,而NOWAIT则是不等待

        这个语句的好处有:1.防止无限期等待被锁定的行。

                                      2.允许在应用程序中对锁的等待时间进行控制。

     (4)表级锁的使用

        1.语法:lock table table_name in lock_name mode [ NOWAIT ]

          其中:lock_name是锁定的模式。

                    NOWAIT字句防止无限期等待其他用户释放资源

二。表分区

   (1)表分区分为4中:范围分区、散列分区、列表分区、复合分区

   (2)范围分区

           1.语法:partition by range(column_name)(

                       partition part1 value less than(range1) [ tablespace tbs1 ],

                       partition part2 value less than(range1) [ tablespace tbs2 ],

                       ......

                        partition partN value less than(maxvalue) [ tablespace tbsN ])

              其中:column_name是以其为基础创建范围分区的列,特定行的该列值成为分区键。

                       part1...partN是分区的名称

                       range1...maxvalue是分区的边界值

                       tbs-....tbsN分区所在表空间的名称

      (3)散列分区

             1.语法:partition by hash(column_name)

                         partitions number

                         或

                         partition by hash(column_name)(

                            partition part1 [ tablespace tbs1 ],

                            partition part2 [ tablespace tbs2 ],

                            .......

                            partition partN [ tablespace tbsN ],

                         )

         (4)复合分区

                 1.语法:partition by range(column_name1)

                             subpartition by hash(column_name2)

                             subpartitions number

                            (partition part1 value less than(range1),

                             ....

                             partition partN value less than(maxvalue))

                    其中:column_name1是以其为基础创建范围分区的列。

                              column_name2是以其为基础创建散列分区的列

                              part1....partN是分区的名称

                              range1.....maxvalue是分区的边界值

                              number要创建子分区的数目。 

          (5)列表分区

                  1.语法:partition by list(column_name)(

                              partition part1 value(values_list1),

                              ......

                              partition partN value(default))

                     其中:column_name1是以其为基础创建范围分区的列

                            part1...partN是分区的名称

                            values_list是对应分区键值得列表。

                            default关键字允许存储前面的分区不能存储的记录。 

 三。分区表的操作

       其实对分区表的操作,增加和往常一样都是用insert into  ,但是删、改、查,则需要在表明的后面加上partition(分区名)

 四。分区表的维护

      1.添加分区

        alter table .... add rartition用于在现有的最后一个分区之后添加新的分区

       例:演示在saless2表中添加新的分区p4

             alter table sales2 add partition p4 values less than(4000);

      2.删除分区

         alter table...drop partitoin用来删除分区

       例:删除sales2表中的p4分区

             alter table sales2 drop partition p4;

        3.截断分区

           alter table....truncate partition来截断分区,截断分区将删除表分区中的所有记录。

          例:删除sales2表中p3分区的所有记录        

                alter table sales2 truncate partiton p3;

         4.合并分区

             例:将sales表中的p1和p2合并成一个p2分区

                    alter table sales2 merge partition p1,p2 into partition p2;

          5.拆分分区

               使用split partition 语句,允许用户将一个分区拆分成两个分区

              例:将slaes2中的p2分成两个分区

                    alter table sales2 split partition p2 at (1000) into (partition p11,partition p21);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值