數(shù)據(jù)加載中……
          sybase的問題
                近來在做sybase的性能調(diào)試,發(fā)現(xiàn)我啟動(dòng)多線程的時(shí)候,線程會(huì)處于lock sleeping。 剛開始還以為是數(shù)據(jù)庫不支持并發(fā)訪問,后來想想真幼稚。。原來是我在做并發(fā)插入數(shù)據(jù)的時(shí)候,該表的鎖設(shè)置為全頁加鎖了。 后來設(shè)置為數(shù)據(jù)行鎖,這樣才可以執(zhí)行并發(fā)操作的測試。 但是后面又遇到一個(gè)問題,就是out of lock的問題,也就是ASE設(shè)置的鎖不夠用。如果是在windows下的話,可以用ASE的補(bǔ)助工具修改number of locks來增加更多的鎖,因?yàn)樵O(shè)置的是數(shù)據(jù)行鎖,所以,在執(zhí)行Insert的時(shí)候,如果不提交事物的話,就會(huì)每一條數(shù)據(jù)加一個(gè)鎖。。在增加鎖的時(shí)候,必須要增加內(nèi)存,也就是增加max memory。。大概一個(gè)鎖占據(jù)的內(nèi)存是120byte。 如果是在Linux系統(tǒng)的話,就修改“服務(wù)名.cfg“文件。 
               1、全頁鎖(allpages lock) 對查詢的表及索引頁加鎖,也就是table lock 
                 2、頁鎖  (data lock)     對所查詢的結(jié)果所在頁加鎖,對索引不加鎖 
              3、行鎖  (row lock)      對某行數(shù)據(jù)加鎖

            sybase除非對配置參數(shù)加以特定,對所有的表都予置了隱含的全頁面加鎖機(jī)制。

          sp_configure ‘lock scheme’, [allpages | datapages | datarows]

            當(dāng)數(shù)據(jù)庫從原先版本的服務(wù)器中轉(zhuǎn)儲(chǔ)出來重新加載時(shí),所有的表都被定義為全頁面加鎖的表。當(dāng)建立一個(gè)新表時(shí),可以不使用這個(gè)缺省值,可采用如下的句法格式:

          create table <tablename>;… lock [allpages | datapages | datarows]

            為了在使用的一個(gè)表中改變加鎖類型,可以采用如下的句法格式:

          alter table <tablename>; lock [allpages | datapages | datarows]

          posted on 2009-03-07 15:27 flyleer 閱讀(249) 評論(0)  編輯  收藏

          主站蜘蛛池模板: 江山市| 湖北省| 马边| 金湖县| 崇礼县| 琼海市| 和顺县| 林西县| 休宁县| 临武县| 临湘市| 南召县| 湖口县| 罗城| 安多县| 若羌县| 迭部县| 灵山县| 建瓯市| 余姚市| 德令哈市| 长乐市| 绥芬河市| 竹北市| 建瓯市| 阿克陶县| 肥城市| 丰县| 淮滨县| 沧州市| 青浦区| 措勤县| 南宫市| 舟山市| 栖霞市| 眉山市| 聂拉木县| 襄垣县| 绥化市| 崇义县| 郧西县|