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

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

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

            當數據庫從原先版本的服務器中轉儲出來重新加載時,所有的表都被定義為全頁面加鎖的表。當建立一個新表時,可以不使用這個缺省值,可采用如下的句法格式:

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

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

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

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

          主站蜘蛛池模板: 榆林市| 绿春县| 云龙县| 曲靖市| 鄂托克旗| 丰顺县| 基隆市| 屯留县| 武汉市| 北海市| 武穴市| 克山县| 孟津县| 出国| 揭阳市| 武城县| 溧水县| 铜鼓县| 高雄市| 利辛县| 临泽县| 宁波市| 萨嘎县| 朝阳区| 济南市| 会泽县| 衡水市| 海安县| 游戏| 靖江市| 象山县| 张家港市| 隆安县| 尼木县| 南丹县| 广宁县| 威信县| 临邑县| 新乡县| 泗阳县| 齐齐哈尔市|