freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)庫的性能優(yōu)化項(xiàng)目解決方案(已修改)

2025-05-22 06:26 本頁面
 

【正文】 . . . . 數(shù)據(jù)庫優(yōu)化是一個(gè)很廣的范圍,涉及到的東西比較多,并且每個(gè)特定的數(shù)據(jù)庫,在此不可能針對(duì)所有的數(shù)據(jù)庫都一一詳細(xì)闡述,如果那樣,經(jīng)常用到的的東西進(jìn)行一個(gè)討論,一般情況下,數(shù)據(jù)庫的優(yōu)化指的就是查詢性能的優(yōu)化(雖然嚴(yán)格上來說不應(yīng)該是這樣的),影響到查詢性能的因素從理論上來講,包括數(shù)據(jù)庫參數(shù)設(shè)置(其實(shí)就是通過參數(shù)控制數(shù)據(jù)庫系統(tǒng)的內(nèi)存,i/o,緩存,備份等一些管理性的東西),索引,分區(qū),,分區(qū)則主要是針對(duì)大數(shù)據(jù)量的情況下,它分散了數(shù)據(jù)文件的分布,減少磁盤競(jìng)爭(zhēng),使效率得到提升。 每種數(shù)據(jù)庫或多或少都有一些自己特定的索引,如oracle除了常規(guī)索引之外還有反向索引,位圖索引,函數(shù)索引,應(yīng)用程序域索引等等,能夠讓用戶對(duì)數(shù)據(jù)的邏輯組織有著更為精確的控制,而sqlserver沒有這么多的索引,大體來說,sqlserver的索引分為兩種:,oracle和sqlserver比較相似,不過sqlserver的分區(qū)更為繁瑣一些,但隨著sqlserver的版本越來越高,,目前的一些數(shù)據(jù)庫系統(tǒng)處理sql的機(jī)制都比較類似,因?yàn)閟ql本身就是一個(gè)標(biāo)準(zhǔn)。,因?yàn)槟壳安块T的很多系統(tǒng)的數(shù)據(jù)庫用到的是sqlserver,雖然oracle會(huì)給與我們更多的可探討的范圍.2:測(cè)試數(shù)據(jù)庫的建立 因?yàn)橐懻撍饕?分區(qū),sql等,因此有必要建立一個(gè)數(shù)據(jù)庫,不然只是泛泛而談,我在sqlserver2000上建立了一個(gè)名為ipanel的數(shù)據(jù)庫,該數(shù)據(jù)庫只有一張表,名為person,person的定義如下:CREATE TABLE [dbo].[person] ([id] [bigint] NOT NULL , 記錄的id[name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,姓名[age] [int] NULL ,年齡[addr] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,地址[sex] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,性別[dept] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,部門[pos] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,郵編[tel] [char] (15) COLLATE Chinese_PRC_CI_AS NULL ,電話[fax] [char] (15) COLLATE Chinese_PRC_CI_AS NULL ,傳真[emdate] [datetime] NULL 入職日期) ON [PRIMARY] ON[PRIMARY]表示該表建在系統(tǒng)的默認(rèn)文件組上,在sqlserver里,文件組的概念就相當(dāng)于oracle的表空間,是一種邏輯概念,它包含了數(shù)據(jù)文件,所謂數(shù)據(jù)文件,sqlserver會(huì)在默認(rèn)的路徑建立文件組和初始的數(shù)據(jù)文件,如果用戶在建立數(shù)據(jù)庫或表的時(shí)候沒有指定文件組,則用默認(rèn)的。數(shù)據(jù)文件,日志文件,參數(shù)文件是所有數(shù)據(jù)庫系統(tǒng)最主要的文件,oracle還有控制文件,在很多的專業(yè)書籍里面,從數(shù)據(jù)庫系統(tǒng)的物理結(jié)構(gòu)上來講,數(shù)據(jù)庫就是指的靜態(tài)的數(shù)據(jù)文件,數(shù)據(jù)庫系統(tǒng)或者數(shù)據(jù)庫實(shí)例指的是一組進(jìn)程,如日志進(jìn)程,數(shù)據(jù)緩沖進(jìn)程,網(wǎng)絡(luò)監(jiān)聽進(jìn)程等,這些進(jìn)程作用在各種文件上面。不說了,:CREATE PROCEDURE initPerson @start int, @end int , 起始條數(shù),結(jié)束條數(shù)@name varchar(10),@age int, 姓名,年齡@addr varchar(10),@sex char(2), 地址,性別@dept varchar(20),@emdate varchar(10 部門,入職日期ASdeclare @id intset @id=@startwhile @id=@endbegininsert into person values(@id,@name,@age,@addr,@sex,@dept ,39。43820039。,39。8273466439。,39。8273466539。,@emdate)set @id=@id+1endGO以下插入記錄exec initPerson 1,100000, ‘王**’,24,’深圳’,’男’,’應(yīng)用開發(fā)部’,’20070604’插入10萬條名叫王**的記錄,因?yàn)樵诋?dāng)前的例子中,姓名不重要,所以相同的姓名不礙事。如下依次執(zhí)行exec initPerson 100001,200000, ‘韓**’,25,’深圳’,’男’,’應(yīng)用工程部’,’20070605’exec initPerson 200001,300000, ‘徐*’,26,’ 深圳’,’男’,’系統(tǒng)終端部’,’20070606’exec initPerson 300001,500000, ‘程*’,23’, 深圳’,’男’,’研發(fā)中心’,’20070607’exec initPerson 500001,750000, ‘卓*’,22,’ 深圳’,’男’,’行政部’,’20070608’exec initPerson 750001,1000000, ‘流*’,20,’ 深圳’,’男’,’業(yè)務(wù)合作部’,’20070609’接著依次插入類似的記錄,我就不一一列舉了.執(zhí)行完畢,person表便有了200萬條記錄。為什么我不用更多的數(shù)據(jù)呢,因?yàn)槲乙l繁的改變數(shù)據(jù)庫的設(shè)置,如果數(shù)據(jù)非常多,那當(dāng)我改變數(shù)據(jù)庫設(shè)置時(shí)候,會(huì)耗費(fèi)很長(zhǎng)的時(shí)間,比如索引更新維護(hù)等,,如果沒有指定聚集索引,那么sqlserver默認(rèn)在主鍵上建立聚集索引,在當(dāng)前情況下,系統(tǒng)在id列上建立了聚集索引。數(shù)據(jù)庫建立完畢,下面將會(huì)對(duì)索引,分區(qū),sql做比較詳細(xì)的討論3:索引 索引是各種關(guān)系數(shù)據(jù)庫系統(tǒng)最常見的一種邏輯單元,是關(guān)系數(shù)據(jù)庫系統(tǒng)舉足輕重的重要組成部分,對(duì)于提高檢索數(shù)據(jù)速度有著至關(guān)重要的作用,索引的原理是根據(jù)索引值得到行指針,然后快速定位到數(shù)據(jù)庫記錄..:常見索引介紹1: B*樹索引 這是最常見的索引,幾乎所有的關(guān)系型數(shù)據(jù)庫系統(tǒng)都支持B*樹結(jié)構(gòu)的索引,也是被最多使用的,其樹結(jié)構(gòu)與二叉樹比較類似,*樹索引在檢索高基數(shù)數(shù)據(jù)列(高基數(shù)列是指該列有很多不同的值,該列所有不同值的個(gè)數(shù)之和與該列所有值的個(gè)數(shù)之和的比成為列基數(shù))時(shí)提供了比較好的性能,B*樹索引是基于二叉樹的,位于最底層的快成為葉塊,用來導(dǎo)航結(jié)構(gòu),包含了索引列(關(guān)鍵字)范圍和另一索引快的地址,如圖所示:(圖片插入做的不夠好,插圖進(jìn)來我覺得很好麻煩)假設(shè)要查找索引中值為80的行,從索引樹的最上層入口開始,首先定位到大于等于50,然后往左找,找到第二個(gè)分支塊,定位到75―100,然后定位到葉塊,定位到葉塊,找到80所對(duì)應(yīng)的rowid,然后根據(jù)rowid到數(shù)據(jù)塊讀取對(duì)應(yīng)的數(shù)據(jù)。如果查詢條件是范圍選擇的,比如colume20 and colume80,那么會(huì)先定位到20的塊,然后再橫向查找到80的塊為止,不是每次都從入口進(jìn)去重新定位的。要說明的是,這種索引是用得最多的,基本上所有的數(shù)據(jù)庫系統(tǒng)都支持這種索引,它是索引里最主要最普遍的,它之所以稱為B*樹索引,更多是因?yàn)樗拇鎯?chǔ)結(jié)構(gòu)有著普遍的意義,很多索引都基于這種結(jié)構(gòu),當(dāng)然sqlserver里沒有名為B*樹的索引,但是不妨礙我們以對(duì)B*樹索引的認(rèn)識(shí)去理解sqlserver的索引,不是嗎?這是我為什么把它放在最前面的原因.2:聚集索引 沒錯(cuò),。 聚集索引是相對(duì)于常規(guī)索引而言的,oracle也有類似的索引,不過叫聚簇索引,注意,雖然聚簇和聚集僅有一字之差,但是oracle的聚簇索引和sqlserver的聚集索引還是有很多的不同的,oracle的聚簇索引可以針對(duì)多表,根據(jù)多個(gè)表相同列的不同值,聚簇”是oralce內(nèi)部的一個(gè)對(duì)象,就像基本表,視圖,觸發(fā)器這些概念一樣. 聚簇索引就是對(duì)聚簇進(jìn)行的索引,由于比較復(fù)雜,在此不詳細(xì)討論,但在sqlserver里,聚集索引直接作用在表上,. 舉個(gè)例子說明來說明sqlserver的聚集索引:我們的漢語字典的正文本身就是一個(gè)聚集索引。比如,我們要查“安”字,就會(huì)很自然地翻開字典的前幾頁,因?yàn)椤鞍病钡钠匆羰恰癮n”,而按照拼音排序漢字的字典是以英文字母“a”開頭并以“z”結(jié)尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”開頭的部分仍然找不到這個(gè)字,那么就說明您的字典中沒有這個(gè)字;同樣的,如果查“張”字,那您也會(huì)將您的字典翻到最后部分,因?yàn)椤皬垺钡钠匆羰恰皕hang”。也就是說,字典的正文部分本身就是一個(gè)目錄,您不需要再去查其他目錄來找到您需要找的內(nèi)容。 我們把這種正文內(nèi)容本身就是一種按照一定規(guī)則排列的目錄稱為“聚集索引”。 聚集索引都是排好序的.
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1