• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    利用序列減少軟件測試開發技術之Oracle數據庫開發工作量

    發布: 2009-9-11 10:41 | 作者: 不詳 | 來源: 領測軟件測試網 | 查看: 22次 | 進入軟件測試論壇討論

    領測軟件測試網

    需求二:設置開始的序列號。

      有時候程序員對于序列開始的數字也有額外的要求。如有些是為了序列的為數的統一,如序列號都是10位數等等。但是如果需要號從1開始,就不能夠保證關鍵字長度的統一。如從1開始到10000,其長度就會長短不一,這對于應用程序取值為造成一定的難度。為此程序員在開發的時候可能會要求所有的關鍵字都必須是10位數字。此時就需要指定序列號開始的值。如可以把序列號開始的值設置為1000000001。那么在以后遞增的時候,就,能夠保證其關鍵字都為10位數字。如果不放心的話,可以再設置一個最大值。不過筆者不建議這么做。雖然對于大部分企業來說,這個十位數字已經足夠其應用。但是為了保險起見,還是不要設置最大值為好。雖然不設置最大值可能會造成關鍵字位數的不統一,但是相比其關鍵字耗竭超過最大值從而造成應用程序錯誤來說,這個統一原則還是可以退一步的。

      另外,有時候在流水號編制的時候,可能還需要區分擔據的類別。此時也需要管理員指定序列的起始值。如選擇有這種情況,企業的銷售訂單主要分為正常訂單與特價訂單,而企業現在銷售訂單是通過流水號來進行編碼。為了區分兩種不同的訂單情況,在生成流水號的時候有要求。如對于正常的訂單,則流水號從100000到899999;而如果是特價的銷售訂單,則流水號從900001到999999。每個月周而復始一次。此時,就需要把序列功能跟其他應用結合。不過主要還是靠序列在發揮作用。為此需要為每種情況設置一個起始值。然數據庫自從根據單據類別的不同調用不同的序列。

      如果要實現對于起始值的控制,則需要利用參數START WITH。在這后面設置起始值,可以方便用戶根據實際情況來設置起始值。筆者以前遇到過一個系統,在這方面設計的很好。這個系統有一個應用字典平臺。用戶可以通過這個平臺來設置Oracle數據庫序列的起始值。而不需要每次調整都從數據庫中去調整。這大大提高了程序設計的靈活性。

      在設置這個起始值的時候,需要跟上面提到的這個參數掛鉤。如果序列是從小到大生成的,則在這里就是要設置其最小值。相反如果序列是從大到小生成的,則這里設置的就是其最大值。以前有人就在這里犯過一個愚蠢的錯誤。他設置的時候是讓序列從小到大生成的,并且有邊界的設置。但是這里初始值設置的時候,則設置了一個最大值。結果這個值還沒怎么用系統就報錯了。這主要是筆誤。為此管理員在設置這個初始值的時候,最好能夠再回過頭去看看序列的生成模式,是按順序生成還是倒序生成。

      需求三:要確保序列號的連續。

      有時候,如在財務憑證編號上,系統要確保這個流水號必須是連續的。此時如果使用這個序列來作為流水號的生成機制的話,那么能否實現所有的序列號都是連續的呢?為了保證實現這個目的,那么就需要設置CACHE參數。

      CACHE這個參數主要用來指定在高速緩存中可以預先分配的序列號個數。這是什么意思呢?也就是說,如果這個數字為20的話(默認為20),那么Oracle一啟動的時候就會自動生成20個序列號放在高速緩存中。當應用程序需要使用的時候,就可以馬上從高速緩存中拿來使用。從而可以提高應用程序的性能。當這個20個序列號用完以后,數據庫會再生成20個序列號存入到數據庫的高速緩存中。很明顯,這么設計就是為了提高數據庫的性能?墒且矔䦷硪粋副作用。如系統在高速緩存中已經生成了20個序列號(從1991到2010)。而實際上只用了15個(如用到2005)。此時如果數據庫因為維護或者其他原因需要重新啟動數據庫。此時高速數據緩存中的內容就會丟失。重新啟動后Oracle數據庫又會生成20個序列號,此時序列號的順序為2011到2030。很明顯此時2006到2010中間就會斷號。為此如果需要保證連號的話,就需要把這個參數設置為Nocache,即不允許預先在高速緩存中生成序列號。這會降低數據庫的性能,但是可以保證序列號的連續性。不會因為數據庫重新啟動或者其他原因而導致序列號(流水號)斷號。

     

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    22/2<12

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>