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

首頁 > 學院 > 開發設計 > 正文

數 據 庫 設 計 經 驗 談

2019-11-18 22:13:19
字體:
來源:轉載
供稿:網友
數據庫模型的設計是否合理會極大影響系統的使用性能。筆者依據多年來設計和使用數據庫的經驗,提出以下一些設
計原則,供同仁們參考。

  慎用游標(Cursor)

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

  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服務器,PⅡ266 64MB RAM ,Windows NT4.0 MS SQL Server 6.5)。

  示例如下:

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

    ( 字段1

     字段2

      ... )

  Insert into #tmp select * from TOTAL where 條件

  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時的
事務提交(最后一個提交語句時),才把物理數據寫入磁盤。

  數據類型的選擇

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

  1. Identify字段不要作為表的主鍵與其它表關聯,這將會影響到該表的數據遷移。

  2. Text 和Image字段屬指針型數據,主要用來存放二進制大型對象(BLOB)。這類數據的操作相比其它數據類型較
慢,因此要避開使用。

  3. 日期型字段的優點是有眾多的日期函數支持,因此,在日期的大小比較、加減操作上非常簡單。但是,在按照日期
作為條件的查詢操作也要用函數,相比其它數據類型速度上就慢許多,因為用函數作為查詢的條件時,服務器無法用先進的
性能策略來優化查詢而只能進行表掃描遍歷每行。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美aaa| 成人免费在线网址| 久久精品一区中文字幕| 亚洲自拍偷拍福利| 久久久久www| 久久777国产线看观看精品| 亚洲欧美日韩综合| 色妞久久福利网| 亚洲女成人图区| 日韩欧美在线中文字幕| 欧美精品18videos性欧| 亚洲天堂视频在线观看| 成人有码在线播放| 97婷婷大伊香蕉精品视频| 精品国产依人香蕉在线精品| 国产精品一区久久| 欧美理论电影在线观看| 亚洲色图35p| 国产日韩欧美在线视频观看| 欧美国产高跟鞋裸体秀xxxhd| 亚洲韩国欧洲国产日产av| 欧美亚洲国产视频| 亚洲理论在线a中文字幕| 国产999精品| 国产精品久久久久久一区二区| 日韩精品在线第一页| 欧美日本高清视频| 亚洲影院色在线观看免费| 久久99国产综合精品女同| 国产情人节一区| 日韩精品中文字| 亚洲成人精品久久| 全亚洲最色的网站在线观看| 国产一区二区免费| 欧美俄罗斯性视频| 精品久久久久久中文字幕一区奶水| 91久久国产婷婷一区二区| 亚洲欧洲国产精品| 中文字幕一区二区精品| 日韩av片免费在线观看| 久久精品视频导航| 色爱精品视频一区| 俺去啦;欧美日韩| 91久久久久久久久久久久久| 美日韩精品视频免费看| 一区二区三区视频观看| 日韩免费在线播放| 亚洲成人免费在线视频| 91性高湖久久久久久久久_久久99| 国模gogo一区二区大胆私拍| 97精品国产97久久久久久| 91九色视频导航| 久久久久99精品久久久久| 亚洲精品久久久久中文字幕二区| 国产中文字幕亚洲| 亚洲最大成人在线| 亚洲天堂网站在线观看视频| 欧美专区日韩视频| 26uuu亚洲国产精品| 九九久久久久久久久激情| 2019中文字幕免费视频| 国产欧美一区二区三区久久| 日韩欧美国产网站| 亚洲欧美综合精品久久成人| 欧美在线观看网址综合| 国产精品久久久久久网站| 欧美亚洲一级片| 欧美一级黑人aaaaaaa做受| 国产成人一区二区| 久久视频在线视频| 亚洲欧美中文字幕在线一区| 欧美激情精品久久久久久| 久久久久久久久综合| 久久久精品一区二区三区| 亚洲成人aaa| 亚洲无线码在线一区观看| 日本精品久久久久影院| 成人黄色av网站| 欧美wwwxxxx| 欧美成人激情视频免费观看| 亚洲男女性事视频| 国产精品成人久久久久| 亚洲福利在线观看| 国产精品综合网站| 粉嫩老牛aⅴ一区二区三区| 成人信息集中地欧美| 色综合伊人色综合网| 日本高清视频一区| 日韩视频在线免费| 国产精品免费视频久久久| 成人信息集中地欧美| 欧美高清一级大片| 91九色综合久久| 欧美限制级电影在线观看| 久久久久久尹人网香蕉| 国产精品自拍视频| 成人午夜小视频| 青青久久aⅴ北条麻妃| 亚洲第一精品电影| 欧美午夜视频一区二区| 91精品在线观| 55夜色66夜色国产精品视频| 国产精品视频公开费视频| 久久av红桃一区二区小说| 亚洲国产精品小视频| 亚洲精选在线观看| 欧美一级视频免费在线观看| 亚洲精品电影网站| 久久久久久久久久久91| 黄色精品一区二区| 色偷偷av一区二区三区乱| 国产精品青草久久久久福利99| 亚洲国语精品自产拍在线观看| 91亚洲国产成人久久精品网站| 欧美裸体xxxxx| 日韩一区二区久久久| 亚洲国产天堂久久综合网| 中文字幕亚洲天堂| 亚洲一区国产精品| 久久九九全国免费精品观看| 欧美精品中文字幕一区| 国产精品视频白浆免费视频| 久久精品国产欧美激情| 国产日韩在线一区| 国产精品视频一| 美女啪啪无遮挡免费久久网站| 一区二区三区视频免费| 国产精品久久久久福利| 国内精品模特av私拍在线观看| 亚洲一区二区三区四区视频| 91在线免费观看网站| 色与欲影视天天看综合网| 在线a欧美视频| 日韩精品视频三区| 亚洲欧洲日产国码av系列天堂| 国产午夜精品视频免费不卡69堂| 精品久久久久久久久久久| 日韩国产激情在线| 91精品久久久久久久久久久久久| 亚洲男女性事视频| 欧美另类精品xxxx孕妇| 欧洲美女免费图片一区| 91亚洲人电影| 精品无码久久久久久国产| 色哟哟亚洲精品一区二区| 亚洲一区第一页| 欧美精品久久久久| 欧美日本在线视频中文字字幕| 国产精品欧美激情在线播放| 国产精品成人一区二区| 国产精品美女久久久久久免费| 久久精品91久久久久久再现| 欧美日韩国产一区二区| 精品一区二区三区三区| 在线日韩精品视频| 欧美麻豆久久久久久中文| 国产欧美在线看| 久久精品人人爽| 中文字幕久精品免费视频| 国产一区二区丝袜高跟鞋图片| 欧美最猛性xxxxx(亚洲精品)| 自拍偷拍亚洲一区| 国产一区二区激情| 久久久久国产精品一区|