Sybase APL 与 DOL 表_sybase dol page-深圳网站优化推广公司

Sybase APL 与 DOL 表

0 篇文章 0 订阅
APL->all pages lock
DOL->data only lock

APL表,事务处理时,既锁数据页,又锁索引页,且只有表锁和页锁。
DOL表,事务处理时,只锁数据页,不锁索引页,具有表锁、页锁和行锁。

DOL表可以提高并发性,减少死锁。

create table \alter table\select into语句都可以指定锁的模式。

------------------------------------------------------------------------------------------------------------------------------------------------------------

2.1 全页加锁 
  全页加锁既是一个新术语,它又是由ASE(Adaptive Server Enterprise)在过去所支持的一种加锁类型。这种类型有下列特性: 
对所有可被访问的页面在页面级加锁 
当各种类型的页面以任何方式发生改变时,对这些排它性的页面进行加锁;而且这种加锁机制一直保持到该事务终止; 
当下一个所需的页面已经成功地获得,对那些已经释放的的当前访问页进行共享页面加锁(如果采用了第三层ANSI隔离,则把这种加锁机制保持到该事务终止为止) 
采用页级时间印记(timestamp)以确定是否发生改变,详细信息记录在事务日志中,以便在系统恢复时以向前或向后方式使用。 
  这种加锁方式常常提供性能最高的解决方案,特别是当应用设计时已经考虑了这些特性时更是如此。但是,有一些应用系统,当发生某些活动时,这种对整个页面进行加锁的方式就可能会对系统性能产生有重大意义的影响。对于那些面对诸如文件系统或其它已经支持更细小尺度加锁机制的数据库厂家产品的一般环境而设计的应用系统而言,这种情况尤其如此。 
  此外,还存在一系列问题,它们要围绕着更加困难的条件进行工作。它们通常要采用更加具有Sybase特性的解决方案。对于商用的应用软件制造厂商而言,对他们是一个挑战,因为这将要求他们必须跨越他们所支持的数据库平台,去完成维护其原代码的工作,而这个工作有相当工作量。在这个领域的基本问题如下: 
对已经按照升序值创建的非群聚性索引的最末端叶型页面存在着争议 
对非群聚性索引的表进行插入和查询时可能发生死锁; 
在按照群聚性的索引值进行更新和对非群聚性索引的表进行查询访问之间可能发生死锁; 
在没有作索引的表的最后一行可能发生冲突(尽管对最后的特定地址可以使用分区) ; 
有可能使行数很少的表之间发生潜在的冲突(尽管对特定的地址可以使用填充因子[ fillfactors]和每页最大行数[ max_rows_per_page]这两个参数) 
对每个页面两边进行加锁的需要常常被分割开来; 
如果一个表特别小,以致在一个单一页面中进行驻留,那么对单一行的访问实际上将破坏对整个表的加锁机制。 
2.2 仅对数据加锁 
  仅对数据加锁机制试图去解决本文前一节所关注的主要问题(其他的议题将在其它功能领域中加以解决)。这种加锁方式支持两类不同的工作方式: 数据行加锁和数据页加锁。在这两种情况中,对于它们所支持的加锁方式,都与以前的加锁机制有所不同。仅对数据加锁具有下列特性: 
在索引页面中不会破坏事务加锁。相反,而是采用了一种称之为锁存的机制。锁存是一种类似于旋转锁(spinlocks)的同步方法,它们与事务无关并且只保留很短的周期(一般而言,当一个任务在数据库中物理上改变一小片数据时,这个周期相当于在共享存贮区中在一个2K的页面改变某些字节数据的时间)一旦完成之后,这个任务将直接打开这个锁存。当这种情况还可能临时同其它组块时 ,因为这种锁存不能对服务器任务进行有上下文的切换,也不能涉及死锁,并且只能保持主要的一小段时间,所以它们不能产生有显著意义的争用。 
采用一个RID对单一行进行数据行加锁(行标识[RID----Row ID]是逻辑页号与所在页面上该行号的组合); 
支持固定的行标识 RIDs, 它可以是向前的,允许不进行其RID的改变,就完成数据行的移动。当一行变大超过了它的可用空间时,采用上述结果对非群聚索引不需要进行任何改变。 
不需要进行任何争用就可以在表的尾部进行插入操作,这一功能已经增加进来。. 
支持采用范围加锁、下一个关键字加锁和无限大加锁等方式对逻辑范围值进行加锁 
支持由最顶层操作所导致的页面分割。这些情况直接加以提交,"系统"事务可以导致在更短一点的时间周期里保持分裂的页面处于锁定状态。 
  为了支持这些变化,需要对采用的存贮表结构进行一系列改善。这些改进的主要效果如下: 
群聚索引现在被存贮为象许多人所熟悉的IBM DB2产品所采用的"放置索引"("placement indexes.")方式。这种结构类似于非群聚性的索引,需要类似的空间总量。这种修正的结构导致了在数据初始存贮时可以按照顺序跨数据页进行存储,但是当发生插入时,它们就要尽可能紧密存放以便在正确的逻辑页面中不存在页面分割。此外,在数据页中的数据顺序在新行增加时是不进行维护整理的。这种索引的应用使每个群聚化的索引周游增加了一次I/O操作。 
行位移表已经增加到索引页和数据页中。这种增加和新的行索引行存贮格式具有使每个索引页面所存贮的索引条目个数减少的潜在能力。 
固定行标识(RIDS)。当一行移动时,对于分配新行位置的向前地址被放在用于驻留该行的位置上。当这种移动需要改变非群聚性索引时,对该行的访问需要增加一次I/O操作以得到'向前'的位置。 
一般而言,索引将更小和更短,这是因为如下原因: 
从每个叶级页面中采用双重键限制机制来限制双重键(Duplicate key)例如,如果值"绿"("GREEN")在下列行标识(RIDs)值等于123-1,234-2,和345-3的行中, 就分别存贮值“绿”("GREEN"),123-1,234-2,345-3,而不是存贮值"绿"("GREEN,")三次。在每个索引页中每个值只存贮一次。 
在非群聚性索引树的非叶型结点中将后缀实行压缩(例如,如果键值是"GREEN"和"HAMILTON",而在这两个值之间发生分裂,那么就在非页级索引页面中存储"G"和"H")。 
2.3 数据页和数据行加锁 
  只对数据加锁机制支持两种方式:数据页加锁和数据行加锁。这些与它们的工作方式和所提供的功能相类似。这两种方式仅在对数据访问产生阻碍作用时,在加锁的尺度上有所区别。在数据页加锁方式下再采用数据行加锁方式具有两种作用(一种起正向作用,另一种起反向作用)。首先,较小尺度加锁机制的使用可能导致减少争用与冲突,然而当大量数据发生变化时,就有可能对加锁产生大量阻碍的情况发生。 
2.4 特定使用的加锁类型 
  除非对配置参数加以特定,对所有的表都予置了隐含的全页面加锁机制。 
sp_configure 'lock scheme', [allpages | datapages | datarows] 
  当数据库从原先版本的服务器中转储出来重新加载时,所有的表都被定义为全页面加锁的表。当建立一个新表时,可以不使用这个缺省值,可采用如下的句法格式: 
create table <tablename>… lock [allpages | datapages | datarows] 
  为了在使用的一个表中改变加锁类型,可以采用如下的句法格式: 
alter table <tablename> lock [allpages | datapages | datarows] 
  在一个现存的表中改变加锁方式,将引起下列三种行动后果发生: 
首先,如果一张表从全页加锁转变为仅对数据加锁,或者从仅对数据加锁转变为全页加锁,在这两种类型之间就要对表进行选择以允许进行存贮格式改变。如果这是一个分区表,就要同时假定必要的并行级别和工作线程已经配置好的情况下,才能执行。 
其次, 对表中的群聚性索引必须重新创建。因为我们能保证数据,所以如果从全页加锁方式转换为只对数据加锁时,这种重新创建可以通过"with sorted_data"来完成。然而,当从仅对数据加锁机制转换为全页加锁方式时,就要进行并行的索引创建操作。(请注意:如果这是一个分区表时,那么并行等级和工作线程的数目必须加以配置才能允许进行这种改变,否则这种迁移将会失败) 
最后,非群聚性的索引将被重建,如果服务器已经为并行处理所加以配置,当进行本步骤时将加以采用。 
  由于这些活动同潜在的工作量有关,从全页加锁机制改变为仅对数据加锁或从仅对数据加锁改变为全页加锁机制都可能是耗费时间的活动。为了标注这一点,有以下一些选择: 
如果可能的话,应该配置使用并行方式。这至少对执行非群聚性索引的哈斯(杂凑,即hashed)创建方法是必须的,但是如果可能的话,采用分区表和分区扫描将使系统得到更大的改进。 
在选择进入和创建群聚性的索引之后,该任务将被设置检查点(checkpointed )所以,如果有充分的硬件资源,通过允许在任何一个时间点上,检查点任务可以具有多于10个(系统缺省值)的异步I/O请求,利用dbcc进行调谐将能够带来有益的效果。('maxwritedes', number) 
进一步作为降低使用检查点成本的一种方法,在相关的高速缓冲池(cache pool)、大数据量的I/O操作中,采用对高淘汰程度进行标记的方法,并允许清洁程序(好象家庭主妇一样)保持特别活跃的状态,将为那些检查点需要从高速缓冲池中刷新较"脏"的页面的而增加的I/O操作次数,并因此花费了在检查点上的时间,都能够大大减少作出贡献。 
如果预先进行了配置,则可以对并行的选择进入可以使用预先分配的盘区。所以,通过将sp_configure number of pre-allocated extents设置为16也将对系统性能有明显的积极的效果。 
  备注:在仅对数据加锁类型之间进行改变不需要对数据进行备份, 而且执行起来只需很短的一段时间。 


据我个人使用经验,我觉得对于并行性较高的应用要充分考虑使用行级锁,这样对于提高并发性能至关重要!当然,事务都存在利弊两方面,使用行级锁,也会带来一些相应的弊端,比如使用的锁越多,占用的内存也越多,在使用行级锁的表上频繁的进行数据删除、插入操作久而久之会造成数据库碎片的大量生成,数据库性能会下降,这就需要定时进行reorg操作,但该操作比较耗时,且影响业务!

maggiehexu CSDN认证博客专家 CSDN认证企业博客
码龄17年 暂无认证
127
原创
10万+
周排名
132万+
总排名
48万+
访问
等级
5944
积分
39
粉丝
12
获赞
41
评论
11
收藏
私信

目录

arcgis server 相关
1篇
  • css
  • ext
    3篇
  • hibernate
    8篇
  • html相关
    5篇
  • httpClient
    1篇
  • ibatis相关
    2篇
  • java
    14篇
  • javaweb
    3篇
  • JSF 相关
    1篇
  • js相关
    18篇
  • jvm
  • LOG日志
    3篇
  • mysql
    2篇
  • openLayers 相关
    1篇
  • oracle 相关
    17篇
  • oracle_xml
    1篇
  • spring 相关
    2篇
  • Struts1相关
    1篇
  • struts2相关
    9篇
  • tomcat
    6篇
  • unix_aix_ibm
    3篇
  • webservice相关
    2篇
  • xml 相关
    1篇
  • xsd
    1篇
  • 中文乱码
  • 服务器篇
    4篇
  • 正则表达式
    4篇
  • FlexPaper
  • odbc
  • FusionCharts
    1篇
  • 统计图
    1篇
  • proxool
    1篇
  • jQuery
    2篇
  • DataTables(jQuery插件)
    1篇
  • jsonlib
    1篇
  • MyEclipse 相关
    1篇
  • MyEclipse8.6
    1篇
  • svn
    1篇
  • aptana
    1篇
  • 插件
    2篇
  • 安装方法
    1篇
  • windows 系统相关
    3篇
  • 端口
    1篇
  • ant
    1篇
  • Eclipse
    2篇
  • cvs
    1篇
  • sybase
  • 随想
  • 为什么被折叠? 到【灌水乐园】发言
    前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值

    相关内容推荐

    绍兴越城网站制作公司服装单页面网站制作网站制作用户发布消息制作网页和管理网站重庆美剧网站制作筷子电影网站制作网站制作行业排行临高网站制作英文网站制作起泡绍兴抖音官方网站链接怎么制作自己制作头像的网站地址批发网站制作哪个好吉林网站制作找哪家调查网站制作干花无锡网站制作先赞新互动网络空房子电影网站制作梅州多语种网站制作简历翻译网站制作永康如何自学制作php网站制作一个58网站多少钱瑞安制作分销商城网站多少钱我的家乡网站制作模板投稿的视频怎么制作成网站网站制作中不要忽视的问题考试网站制作视频杭州 建设网站制作网站制作赞超速云建站如何制作定制型网站请假条模板网站制作胜利实景制作网站恋与制作人官方网站九游个人网站如何制作才能赚钱网站中动画制作的技术网站制作创意思路顺义公司网站制作如何制作网站的思维导图网站房产首页制作宝安专业外贸网站制作比较好的自己用dw制作网站临沂英文网站制作珠海快速制作网站无锡网站制作先赞新互动网络淘宝联盟网站制作吉林东丰网站制作电脑制作表白网站赣榆区网站制作公司四驱车轨道制作网站网站制作中的交互设计有多重要如皋租房网站制作保定制作网站企业北京公交网站制作制作手机小说网站网站建设与网页制作技术美联航网站制作蛋糕网站地图制作步骤杭州网站制作之家相亲才会赢网站制作伊春网站制作费用杂志网站制作蛋糕保定化工行业网站制作矮牵牛种子网站制作国外木工制作视频网站html手机网站怎么制作专业制作网站嘉兴台州旅游网站app怎么制作动漫网站制作表格中文网站目录制作壁纸诸城营销型网站制作哪家好揭阳企业制作网站金山网站制作多少钱房产网站制作蛋糕昆明网站建设制作流程242电影网站制作修锁海报制作网站在线开放课程网站制作可以制作书的网站网站制作了一年的时间自助旅游网站制作环保电影网站制作如何网站制作起泡XXX电影网站制作赛车赌博平台网站制作响应网站制作中英文网站怎么制作制作网站的步骤凡科粘合剂网站制作起泡瑞安外贸网站制作如何制作小型网站单页式网站制作制作网站时如何更改主页名义乌ui网站制作培训多少钱原平关键词网站制作迪庆手机网站制作奉节餐饮网站制作需要多少钱北京数字网站制作特点设计丝芙兰网站制作贴纸黄石响应式网站制作网页设计制作网站示例宁波营销型网站制作好吗大沥营销网站制作公司江门定制网站制作费用昆明在哪制作网站官方网站小吃微网烧鸡制作过程息烽网站制作加盟动态图制作网站中文版舟山电子名片制作网站哪个好营山网站制作制作网站要学英语吗击剑网站制作蛋糕台州网站制作找哪家郑州去哪找网站制作排名dw网站制作成品下载桓台网站制作费用网站制作软件免费版下载坪地网站制作基本流程王平简历制作网站如何制作一个模板网站好孩子网站制作干花原始森林电影网站制作我的博客网站制作锦州营销型网站制作虎丘网站制作价格宁波网站平台制作H5制作一个网站网站制作要用什么技术桐乡网站制作是什么职位崇左制作网站推荐蓬莱网站制作软件手机微网站设计制作聊城加盟网站制作网站制作怎么看母婴网站视频制作广州市研发网站制作哪家好许昌网站制作收费明细表厦门制作网站的公司哪家好9电影网站制作成都网站制作起泡胶教程杭州 建设网站制作焦作高端网站制作公司哪家好闯关口红机网站制作六安手机网站制作多少钱龙华网站制作及推广服务商武汉网站制作书签手绘风暴英雄网站制作电影网站制作突击连高大上的网站制作表情包动态在线制作网站定制网站制作服务制作网站请示江苏省建设厅网站制作昆明网站制作ppt苹果手机怎么制作网站网站制作和编程有关吗如何开发制作一个网站色眯眯网站制作雪糕三分钟读懂网站制作语言许昌网站制作服务怎么制作一个展示网站宣传部网站制作重庆网站制作智能 乐云践新平面设计网站制作雪糕ps制作音乐网站免费培训类网站制作微网站制作方法怎么制作个人介绍网站网站制作好弄吗制作人物关系图的网站在线制作人物的网站广铁集团网站制作贴纸广州360网站制作排名小说网站架构制作全彩本子网站制作湖北网站制作开发幻影图片一键制作网站安徽信息化网站制作质量服务人物云文字制作网站快速免费网站制作银川市网站制作哪里靠谱报名网站制作价格南园网络营销网站制作哪里好邢台网站制作哪家好制作微信小游戏网站卡贴素材图片制作网站手机wap版网站制作潍坊网站制作蛋糕恶魔岛网站制作小玩具华坪县网站制作挂机网站制作网站水印制作软件网上制作网站流程都市家居网站制作企业高级网站制作制作网站的htlm语言建设网站制作壁纸apphtml5制作网站首页练习小公司网站制作价格阜新租房网站制作网站恶意代码起诉制作人员山东中介网站制作公司网站制作价格差别大

    合作伙伴

    深圳网站优化推广公司

    龙岗网络公司
    深圳网站优化
    龙岗网站建设
    坪山网站建设
    百度标王推广
    天下网标王
    SEO优化按天计费
    SEO按天计费系统