九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Oracle 9i 數(shù)據(jù)庫設(shè)計(jì)指引全集(3)

  2.4.2 表設(shè)計(jì)
  
  2.4.2.1 邏輯段設(shè)計(jì)原則
  
  2.4.2.1.1 Tablespace
  
  每個(gè)表在創(chuàng)建時(shí)候,必須指定所在的表空間,不要采用默認(rèn)表空間以防止表建立在系統(tǒng)表空間上導(dǎo)致性能問題。對于事務(wù)比較繁忙的數(shù)據(jù)表,必須存放在該表的專用表空間中。
  
  2.4.2.1.2 Pctused
  
  默認(rèn)pctused導(dǎo)致數(shù)據(jù)庫物理空間利用率非常低40%左右;對于update比較少或update不導(dǎo)致行增大的表,pctused可設(shè)置在60—85之間;對于update能夠?qū)е滦性龃蟮谋恚瑄pdate設(shè)置在40—70之間
  
  2.4.2.1.3 Initrans
  
  對于需要并行查詢或者在RAC數(shù)據(jù)庫中需要并行處理的表,initrans設(shè)置為2的倍數(shù),否則,不設(shè)該值。
  
  2.4.2.1.4 Storage
  
  2.4.2.1.4.1 Initial
  
  盡量減少表數(shù)據(jù)段的extents數(shù)量,initial的大小盡量接近數(shù)據(jù)段的大小64K,128K,… ,1M,2M,4M,8M,16M ,…,等按2的倍數(shù)進(jìn)行圓整。例如表或分區(qū)數(shù)據(jù)段大小為28M,則initial取32M。
  
  2.4.2.1.4.2 Next
  
  表或分區(qū)擴(kuò)展extents的大小,按上述方法進(jìn)行圓整。當(dāng)表或分區(qū)數(shù)據(jù)段無法按Initial接近值進(jìn)行圓整的情況下,其大小可以按 Initial+Next進(jìn)行圓整。此時(shí),必須設(shè)置Minextents=2。例如:表或分區(qū)數(shù)據(jù)段大小為150M,則Initial=128M;Next=32M,Minextents=2。
  
  2.4.2.1.4.3 Minextents
  
  該參數(shù)表示表創(chuàng)建時(shí)候Extents的初始數(shù)量,一般取1—2。
  
  2.4.2.1.4.4 Pctincrease
  
  表示每個(gè)擴(kuò)展Extents的增長率,設(shè)置pctincrease=0能夠獲得較好的存儲(chǔ)性能。
  
  2.4.2.2 特殊表設(shè)計(jì)原則
  
  2.4.2.2.1 分區(qū)表
  
  對于數(shù)據(jù)量比較大的表,根據(jù)表數(shù)據(jù)的屬性進(jìn)行分區(qū),以得到較好的性能。如果表按某些字段進(jìn)行增長,則采用按字段值范圍進(jìn)行范圍分區(qū);如果表按某個(gè)字段的幾個(gè)關(guān)鍵值進(jìn)行分布,則采用列表分區(qū);對于靜態(tài)表,則采用hash分區(qū)或列表分區(qū);在范圍分區(qū)中,如果數(shù)據(jù)按某關(guān)鍵字段均衡分布,則采用子分區(qū)的復(fù)合分區(qū)方法。
  
  2.4.2.2.2 聚蔟表
  
  如果某幾個(gè)靜態(tài)表關(guān)系比較密切,則可以采用聚蔟表的方法。
  
  2.4.2.3 完整性設(shè)計(jì)原則
  
  2.4.2.3.1 主鍵約束
  
  關(guān)聯(lián)表的父表要求有主健,主健字段或組合字段必須滿足非空屬性和唯一性要求。對于數(shù)據(jù)量比較大的父表,要求指定索引段。
  
  2.4.2.3.2 外鍵關(guān)聯(lián)
  
  對于關(guān)聯(lián)兩個(gè)表的字段,一般應(yīng)該分別建立主鍵、外鍵。實(shí)際是否建立外鍵,根據(jù)對數(shù)據(jù)完整性的要求決定。為了提高性能,對于數(shù)據(jù)量比較大的標(biāo)要求對外健建立索引。對于有要求級聯(lián)刪除屬性的外鍵,必須指定on delete cascade 。
  
  2.4.2.3.3 NULL值
  
  對于字段能否null,應(yīng)該在sql建表腳本中明確指明,不應(yīng)使用缺省。由于NULL值在參加任何運(yùn)算中,結(jié)果均為NULL。所以在應(yīng)用程序中必須利用nvl()函數(shù)把可能為NULL值得字段或變量轉(zhuǎn)換為非NULL的默認(rèn)值。例如:NVL(sale,0)。
  
  2.4.2.3.4 Check條件
  
  對于字段有檢查性約束,要求指定check規(guī)則。
  
  2.4.2.3.5 觸發(fā)器
  
  觸發(fā)器是一種特殊的存儲(chǔ)過程,通過數(shù)據(jù)表的DML操作而觸發(fā)執(zhí)行,起作用是為確保數(shù)據(jù)的完整性和一致性不被破壞而創(chuàng)建,實(shí)現(xiàn)數(shù)據(jù)的完整約束。
  
  觸發(fā)器的before或after事務(wù)屬性的選擇時(shí)候,對表操作的事務(wù)屬性必須與應(yīng)用程序事務(wù)屬性保持一致,以避免死鎖發(fā)生。在大型導(dǎo)入表中,盡量避免使用觸發(fā)器。
  
  2.4.2.4 注釋
  
  表、字段等應(yīng)該有中文名稱注釋,以及需要說明的內(nèi)容。
  
  2.4.3 索引設(shè)計(jì)
  
  對于查詢中需要作為查詢條件的字段,可以考慮建立索引。最終根據(jù)性能的需要決定是否建立索引。對于復(fù)合索引,索引字段順序比較關(guān)鍵,把查詢頻率比較高的字段排在索引組合的最前面。在分區(qū)表中,盡量采用local分區(qū)索引以方便分區(qū)維護(hù)。
  
  除非時(shí)分區(qū)local索引,否則在創(chuàng)建索引段時(shí)候必須指定指定索引段的tablespace、storage屬性,具體參考4.4.2.1內(nèi)容。
  
  2.4.4 視圖設(shè)計(jì)
  
  視圖是虛擬的數(shù)據(jù)庫表,在使用時(shí)要遵循以下原則:
  
  從一個(gè)或多個(gè)庫表中查詢部分?jǐn)?shù)據(jù)項(xiàng);
  
  為簡化查詢,將復(fù)雜的檢索或字查詢通過視圖實(shí)現(xiàn);
  
  提高數(shù)據(jù)的安全性,只將需要查看的數(shù)據(jù)信息顯示給權(quán)限有限的人員;
  
  視圖中如果嵌套使用視圖,級數(shù)不得超過3級;
  
  由于視圖中只能固定條件或沒有條件,所以對于數(shù)據(jù)量較大或隨時(shí)間的推移逐漸增多的庫表,不宜使用視圖;可以采用實(shí)體化視圖代替。
  
  除特殊需要,避免類似Select * from [TableName] 而沒有檢索條件的視圖;
  
  視圖中盡量避免出現(xiàn)數(shù)據(jù)排序的SQL語句。
  
  2.4.5 包設(shè)計(jì)
  
  存儲(chǔ)過程、函數(shù)、外部游標(biāo)必須在指定的數(shù)據(jù)包對象PACKAGE中實(shí)現(xiàn)。存儲(chǔ)過程、函數(shù)的建立如同其它語言形式的編程過程,適合采用模塊化設(shè)計(jì)方法;當(dāng)具體算法改變時(shí),只需要修改需要存儲(chǔ)過程即可,不需要修改其它語言的源程序。當(dāng)和數(shù)據(jù)庫頻繁交換數(shù)據(jù)是通過存儲(chǔ)過程可以提高運(yùn)行速度,由于只有被授權(quán)的用戶才能執(zhí)行存儲(chǔ)過程,所以存儲(chǔ)過程有利于提高系統(tǒng)的安全性。
  
  存儲(chǔ)過程、函數(shù)必須檢索數(shù)據(jù)庫表記錄或數(shù)據(jù)庫其他對象,甚至修改(執(zhí)行Insert、Delete、Update、Drop、Create等操作)數(shù)據(jù)庫信息。如果某項(xiàng)功能不需要和數(shù)據(jù)庫打交道,則不得通過數(shù)據(jù)庫存儲(chǔ)過程或函數(shù)的方式實(shí)現(xiàn)。在函數(shù)中避免采用DML或DDL語句。
  
  在數(shù)據(jù)包采用存儲(chǔ)過程、函數(shù)重載的方法,簡化數(shù)據(jù)包設(shè)計(jì),提高代碼效率。存儲(chǔ)過程、函數(shù)必須有相應(yīng)的出錯(cuò)處理功能。
  
  2.4.6 安全性設(shè)計(jì)
  
  4.4.6.1 管理默認(rèn)用戶
  
  在生產(chǎn)環(huán)境中,必須嚴(yán)格管理sys和system用戶,必須修改其默認(rèn)密碼,禁止用該用戶建立數(shù)據(jù)庫應(yīng)用對象。刪除或鎖定數(shù)據(jù)庫測試用戶scott 。
  
  2.4.6.2 數(shù)據(jù)庫級用戶權(quán)限設(shè)計(jì)
  
  必須按照應(yīng)用需求,設(shè)計(jì)不同的用戶訪問權(quán)限。包括應(yīng)用系統(tǒng)管理用戶,普通用戶等,按照業(yè)務(wù)需求建立不同的應(yīng)用角色。
  
  用戶訪問另外的用戶對象時(shí),應(yīng)該通過創(chuàng)建同義詞對象synonym進(jìn)行訪問。
  
  2.4.6.3 角色與權(quán)限
  
  確定每個(gè)角色對數(shù)據(jù)庫表的操作權(quán)限,如創(chuàng)建、檢索、更新、刪除等。每個(gè)角色擁有剛好能夠完成任務(wù)的權(quán)限,不多也不少。在應(yīng)用時(shí)再為用戶分配角色,則每個(gè)用戶的權(quán)限等于他所兼角色的權(quán)限之和。
  
  2.4.6.4 應(yīng)用級用戶設(shè)計(jì)
  
  應(yīng)用級的用戶賬號密碼不能與數(shù)據(jù)庫相同,防止用戶直接操作數(shù)據(jù)庫。用戶只能用賬號登陸到應(yīng)用軟件,通過應(yīng)用軟件訪問數(shù)據(jù)庫,而沒有其它途徑操作數(shù)據(jù)庫。
  
  2.4.6.5 用戶密碼管理
  
  用戶賬號的密碼必須進(jìn)行加密處理,確保在任何地方的查詢都不會(huì)出現(xiàn)密碼的明文。
  
  2.5 SQL編寫
  2.5.1 字符類型數(shù)據(jù)
  
  SQL中的字符類型數(shù)據(jù)應(yīng)該統(tǒng)一使用單引號。特別對純數(shù)字的字串,必須用單引號,否則會(huì)導(dǎo)致內(nèi)部轉(zhuǎn)換而引起性能問題或索引失效問題。利用trim(),lower()等函數(shù)格式化匹配條件。
  
  2.5.2 復(fù)雜sql
  
  對于非常復(fù)雜的sql(特別是有多層嵌套,帶子句或相關(guān)查詢的),應(yīng)該先考慮是否設(shè)計(jì)不當(dāng)引起的。對于一些復(fù)雜SQL可以考慮使用程序?qū)崿F(xiàn)。
  
  USER_TAB_COMMENTS 數(shù)據(jù)字典
  
  Comment on 可加注解
  
  2.5.3 高效性
  
  2.5.3.1 避免In子句
  
  使用In 或 not In子句時(shí),特別是當(dāng)子句中有多個(gè)值時(shí),且查詢數(shù)據(jù)表數(shù)據(jù)較多時(shí),速度會(huì)明顯下降。可以采用連接查詢或外連接查詢來提高性能。
  
  Char 比 varchar 查詢時(shí)高詢
  
  在進(jìn)行查詢及建立索引時(shí),char比varchar的效率要高,當(dāng)然varchar在存儲(chǔ)上比char要好
  
  2.5.3.2 避免嵌套的Select子句
  
  這個(gè)實(shí)際上是In子句的特例。
  
  2.5.3.3 避免使用Select * 語句
  
  如果不是必要取出所有數(shù)據(jù),不要用*來代替,應(yīng)給出字段列表,注:不含select count(*)。
  
  2.5.3.4 避免不必要的排序
  
  不必要的數(shù)據(jù)排序大大的降低系統(tǒng)性能。
  
  2.5.4 健壯性
  
  2.5.4.1 Insert語句
  
  使用Insert語句一定要給出要插入值的字段列表,這樣即使更改了表結(jié)構(gòu)加了字段也不會(huì)影響現(xiàn)有系統(tǒng)的運(yùn)行。
  
  2.5.4.2 Count(*)、Count(*)、count(distinct id)的區(qū)別
  
  Select count(*) from testtab
  
  得到表testtab的記錄數(shù)
  
  select count(id) from testtab
  
  得到表testtab id字段非空記錄數(shù)
  
  select count(distinct id) from testtab
  
  得到表testtab id字段值非相同記錄數(shù)
  
  2.5.4.3 Not null 為字段類型性質(zhì)的約束
  
  本約束功能在后期無語法使期失效,可使用修改字段類型方式
  
  alter table modify 字段名 類型 not null
  
  alter table modify 字段名 類型
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VFP 查詢
SQL面試須看
數(shù)據(jù)庫基礎(chǔ)筆記-SQL
轉(zhuǎn)貼:SQL SERVER面試題1
一個(gè)小時(shí)學(xué)會(huì)MySQL數(shù)據(jù)庫
從入門到入土:MySQL完整學(xué)習(xí)指南,包教包會(huì)!
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服