亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

精通數據庫系列之入門-技巧篇5

2019-11-03 08:37:53
字體:
來源:轉載
供稿:網友
大型數據庫設計原則   
作者:思索 整理:南海
  一個好的數據庫產品不等于就有一個好的應用系統,如果不能設計一個合理的數據庫模型,不僅會增加客戶端和服務器段程序的編程和維護的難度,而且將會影響系統實際運行的性能。一般來講,在一個MIS系統分析、設計、測試和試運行階段,因為數據量較小,設計人員和測試人員往往只注意到功能的實現,而很難注意到性能的薄弱之處,等到系統投入實際運行一段時間后,才發現系統的性能在降低,這時再來考慮提高系統性能則要花費更多的人力物力,而整個系統也不可避免的形成了一個打補丁工程。筆者依據多年來設計和使用數據庫的經驗,提出以下一些設計準則,供同仁們參考。


命名的規范  

  

  不同的數據庫產品對對象的命名有不同的要求,因此,數據庫中的各種對象的命名、后臺程序的代碼編寫應采用大小寫敏感的形式,各種對象命名長度不要超過30個字符,這樣便于應用系統適應不同的數據庫。


游標(Cursor)的慎用   

  

  游標提供了對特定集合中逐行掃描的手段,一般使用游標逐行遍歷數據,根據取出的數據不同條件進行不同的操作。尤其對多表和大表定義的游標(大的數據集合)循環很容易使程序進入一個漫長的等特甚至死機,筆者在某市《住房公積金管理系統》進行日終帳戶滾積數計息處理時,對一個10萬個帳戶的游標處理導致程序進入了一個無限期的等特(后經測算需48個小時才能完成)(硬件環境:Alpha/4000 128Mram ,Sco Unix,Sybase 11.0),后根據不同的條件改成用不同的UPDATE語句得以在二十分鐘之內完成。


示例如下:   

  

Declare Mycursor cursor for select  count_no from COUNT


  Open Mycursor

  Fetch Mycursor into @vcount_no

  While (@@sqlstatus=0)

   Begin

       If  @vcount_no=’’  條件1

           操作1

       If  @vcount_no=’’  條件2

           操作2

       。。。

       Fetch Mycursor into @vcount_no

   End

。。。

。。。

改為

  Update COUNT set  操作1 for 條件1

  Update COUNT set  操作2 for 條件2

  。。。

  。。。

  在有些場合,有時也非得使用游標,此時也可考慮將符合條件的數據行轉入臨時表中,再對臨時表定義游標進行操作,可時性能得到明顯提高。筆者在某地市〈電信收費系統〉數據庫后臺程序設計中,對一個表(3萬行中符合條件的30多行數據)進行游標操作(硬件環境:PC服務器,PII266 64Mram ,NT4.0 Ms Sqlserver 6.5)。 示例如下:

Create #tmp  /* 定義臨時表 */

( 字段1

   字段2
   。。。

)

  Insert into #tmp select * from TOTAL where 條件  /* TOTAL中3萬行 符合條件只有幾十行 */

  Declare Mycursor cursor for select * from #tmp

   /*對臨時表定義游標*/

  。。。


索引(Index)的使用原則

   創建索引一般有以下兩個目的:維護被索引列的唯一性和提供快速訪問表中數據的策略。大型數據庫有兩種索引即簇索引和非簇索引,一個沒有簇索引的表是按堆結構存儲數據,所有的數據均添加在表的尾部,而建立了簇索引的表,其數據在物理上會按照簇索引鍵的順序存儲,一個表只允許有一個簇索引,因此,根據B樹結構,可以理解添加任何一種索引均能提高按索引列查詢的速度,但會降低插入、更新、刪除操作的性能,尤其是當填充因子(Fill Factor)較大時。所以對索引較多的表進行頻繁的插入、更新、刪除操作,建表和索引時因設置較小的填充因子,以便在各數據頁中留下較多的自由空間,減少頁分割及重新組織的工作。


數據的一致性和完整性   

  為了保證數據庫的一致性和完整性,設計人員往往會設計過多的表間關聯(Relation),盡可能的降低數據的冗余。表間關聯是一種強制性措施,建立后,對父表(Parent Table)和子表(Child Table)的插入、更新、刪除操作均要占用系統的開銷,另外,最好不要用Identify 屬性字段作為主鍵與子表關聯。如果數據冗余低,數據的完整性容易得到保證,但增加了表間連接查詢的操作,為了提高系統的響應時間,合理的數據冗余也是必要的。使用規則(Rule)和約束(Check)來防止系統操作人員誤輸入造成數據的錯誤是設計人員的另一種常用手段,但是,不必要的規則和約束也會占用系統的不必要開銷,需要注意的是,約束對數據的有效性驗證要比規則快。所有這些,設計人員在設計階段應根據系統操作的類型、頻度加以均衡考慮。


事務的陷阱  

  事務是在一次性完成的一組操作。雖然這些操作是單個的操作,SQL Server能夠保證這組操作要么全部都完成,要么一點都不做。正是大型數據庫的這一特性,使得數據的完整性得到了極大的保證。


  眾所周知,SQL Server為每個獨立的SQL語句都提供了隱含的事務控制,使得每個DML的數據操作得以完整提交或回滾,但是SQL Server還提供了顯式事務控制語句
---- BEGIN TRANSACTION 開始一個事務
---- COMMIT TRANSACTION 提交一個事務

---- ROLLBACK TRANSACTION 回滾一個事務

---- 事務可以嵌套,可以通過全局變量@@trancount檢索到連接的事務處理嵌套層次。

  需要加以特別注意并且極容易使編程人員犯錯誤的是,每個顯示或隱含的事物開始都使得該變量加1,每個事務的提交使該變量減1,每個事務的回滾都會使得該變量置0,而只有當該變量為0時的事務提交(最后一個提交語句時),這時才把物理數據寫入磁盤。


數據庫性能調整   

  在計算機硬件配置和網絡設計確定的情況下,影響到應用系統性能的因素不外乎為數據庫性能和客戶端程序設計。而大多數數據庫設計員采用兩步法進行數據庫設計:首先進行邏輯設計,而后進行物理設計。數據庫邏輯設計去除了所有冗余數據,提高了數據吞吐速度,保證了數據的完整性,清楚地表達數據元素之間的關系。而對于多表之間的關聯查詢(尤其是大數據表)時,其性能將會降低,同時也提高了客 戶端程序的編程難度,因此,物理設計需折衷考慮,根據業務規則,確定對關聯表的數據量大小、數據項的訪問頻度,對此類數據表頻繁的關聯查詢應適當提高數據冗余設計。


數據類型的選擇   

  數據類型的合理選擇對于數據庫的性能和操作具有很大的影響,有關這方面的書籍也有不少的闡述,這里主要介紹幾點經驗。

Identify字段不要作為表的主鍵與其它表關聯,這將會影響到該表的數據遷移。
Text 和Image字段屬指針型數據,主要用來存放二進制大型對象(BLOB)。這類數據的操作相比其它數據類型較慢,因此要避開使用。
日期型字段的優點是有眾多的日期函數支持,因此,在日期的大小比較、加減操作上非常簡單。但是,在按照日期作為條件的查詢操作也要用函數,相比其它數據類型速度上就慢許多,因為用函數作為查詢的條件時,服務器無法用先進的性能策略來優化查詢而只能進行表掃描遍歷每行。
  例如:要從DATA_TAB1中(其中有一個名為DATE的日期字段)查詢1998年的所有記錄。  




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人精品在线观看| 久久精品成人一区二区三区| 欧美大尺度激情区在线播放| 久久99久国产精品黄毛片入口| 亚洲香蕉av在线一区二区三区| 欧美成人精品在线播放| 琪琪第一精品导航| 91夜夜未满十八勿入爽爽影院| 国产精品久久久久久久久免费| 成人精品一区二区三区电影免费| 亚洲xxxx在线| 97成人精品视频在线观看| 久久影院中文字幕| 国产一区香蕉久久| 久久久久久九九九| 欧美激情精品久久久久久免费印度| 国产精品久久久久99| 亚洲自拍偷拍视频| 久久成年人视频| 91免费的视频在线播放| 久久深夜福利免费观看| 91久久国产综合久久91精品网站| 中文字幕在线看视频国产欧美| 色妞久久福利网| www.日韩免费| 日本高清不卡的在线| 久久精品国产亚洲7777| 国产精品三级久久久久久电影| 青青青国产精品一区二区| 久久人人爽人人爽人人片av高清| 久久在线观看视频| 国产精品一区二区三区久久| 国产精品高清网站| 日韩av在线免费看| 欧美日韩性视频在线| 国产精品极品美女在线观看免费| 国产精品一区二区三区在线播放| 国产精品女人网站| 性欧美在线看片a免费观看| 欧美在线视频在线播放完整版免费观看| 日韩精品免费在线视频观看| 久久久成人精品| 亚洲高清久久网| 亚洲精品av在线| 久久91亚洲精品中文字幕| 亚洲国产精品99| 91天堂在线视频| 精品亚洲国产成av人片传媒| 国产成人亚洲综合91精品| 成人精品一区二区三区电影免费| 日韩亚洲在线观看| 久久最新资源网| www.亚洲男人天堂| 亚洲a区在线视频| 一本色道久久综合狠狠躁篇怎么玩| 精品亚洲va在线va天堂资源站| 国产成人拍精品视频午夜网站| 欧美日韩国产在线播放| 国产脚交av在线一区二区| 精品久久久在线观看| 青青在线视频一区二区三区| 国产一区二区日韩精品欧美精品| 亚洲一区av在线播放| 欧美综合国产精品久久丁香| 日韩欧美高清在线视频| 国产精品黄页免费高清在线观看| 日韩影视在线观看| 国产精品三级久久久久久电影| 国产精品欧美日韩一区二区| 日韩精品视频免费| 91视频国产高清| 国产成人91久久精品| 亚洲韩国欧洲国产日产av| 日韩**中文字幕毛片| 久久精品国产亚洲7777| 国产日韩在线视频| 久久久久久尹人网香蕉| 亚洲人成在线播放| 亚洲天堂av在线播放| 亚洲成人黄色网| 国产成人精彩在线视频九色| 日韩精品免费在线视频| 久久精品亚洲热| 国产精品国产三级国产aⅴ浪潮| 91精品国产91久久久久久久久| 日本高清不卡在线| 高清欧美性猛交xxxx| 亚洲一区二区久久久久久久| 欧美在线视频免费观看| 欧美乱大交xxxxx另类电影| 欧美激情亚洲一区| 日韩在线观看你懂的| 日本伊人精品一区二区三区介绍| 欧美一区二区影院| 成人黄色在线播放| 亚洲性生活视频在线观看| 欧美日韩国产色| 在线视频欧美日韩| 中文字幕欧美视频在线| 日韩av在线最新| 色综久久综合桃花网| 这里只有精品久久| 久久国内精品一国内精品| 亚洲社区在线观看| 91手机视频在线观看| 亚洲aaa激情| 国内精品视频久久| 最近中文字幕日韩精品| 亚洲激情视频在线| 欧美性猛交xxxx乱大交| 日韩中文字幕第一页| 久久久成人精品| 久久夜精品va视频免费观看| 日韩激情视频在线播放| 黑人巨大精品欧美一区二区一视频| 色悠久久久久综合先锋影音下载| 911国产网站尤物在线观看| 91人成网站www| 欧美日韩免费在线| 亚洲免费成人av电影| 在线精品91av| 亚洲国产小视频在线观看| 欧美性xxxx| 人人做人人澡人人爽欧美| 欧美午夜视频在线观看| 久久国产精品久久久久久久久久| 91青草视频久久| 久久久久久综合网天天| 98午夜经典影视| 亚洲国产精品久久久久秋霞不卡| 欧美交受高潮1| 精品日韩中文字幕| 亚洲欧美日韩中文视频| 国产日韩欧美自拍| 亚洲精品日韩丝袜精品| 欧美日韩国产在线播放| 91探花福利精品国产自产在线| 黑人与娇小精品av专区| 日韩av电影在线网| 一本一道久久a久久精品逆3p| 国产视频一区在线| 国产精品av电影| 欧美色道久久88综合亚洲精品| 日韩久久免费电影| 国产美女搞久久| 久久九九全国免费精品观看| 欧美性视频精品| 国产色婷婷国产综合在线理论片a| 欧美激情va永久在线播放| 久久精品视频在线观看| 全球成人中文在线| 亚洲人在线视频| 日韩欧美亚洲国产一区| 亚洲第一精品夜夜躁人人躁| 久久久久久久亚洲精品| 一区二区三区视频在线| 人妖精品videosex性欧美| 久久精品国产视频| 欧美电影在线观看网站| 精品亚洲一区二区三区| 国产欧美精品va在线观看| 亚洲免费av片| 欧美性猛交丰臀xxxxx网站| 欧美国产在线视频|