版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一部分SQLSERVER據(jù)庫(kù)優(yōu)化方案微軟公司的SQLSERVE幅一個(gè)功能完備的數(shù)據(jù)庫(kù)管理系統(tǒng),它提供了完整的關(guān)系數(shù)據(jù)庫(kù)創(chuàng)建、開發(fā)和管理功能?,F(xiàn)社會(huì)信息技術(shù)的快速發(fā)展,對(duì)數(shù)據(jù)庫(kù)技術(shù)的要求也越來越高,SQLSERVE嗷據(jù)庫(kù)在信息化的過程中得到了廣泛的應(yīng)用。第一章數(shù)據(jù)庫(kù)系統(tǒng)概述從20世紀(jì)60年代開始到現(xiàn)在,數(shù)據(jù)庫(kù)技術(shù)經(jīng)過了30多年的發(fā)展。在這30多年的歷程中,在數(shù)據(jù)庫(kù)技術(shù)的理論研究和系統(tǒng)開發(fā)上取得了輝煌的成就,確立了數(shù)據(jù)技術(shù)在現(xiàn)代計(jì)算機(jī)系統(tǒng)中不可或缺的地位。成為現(xiàn)代信息科學(xué)與技術(shù)的重要組成部分以及計(jì)算機(jī)數(shù)據(jù)處理和信息管理系統(tǒng)的核心。1.1 基本概念與數(shù)據(jù)庫(kù)技術(shù)密切相關(guān)的基本概念包括:數(shù)據(jù)、數(shù)據(jù)庫(kù)、
2、數(shù)據(jù)庫(kù)管理系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)四大概念。1. 數(shù)據(jù)(Data)數(shù)據(jù)是對(duì)客觀事物的一種描述,是由能被計(jì)算機(jī)識(shí)別與處理的數(shù)值、字符等符號(hào)構(gòu)成的集合,即數(shù)據(jù)是指描述事物的符號(hào)記錄.廣義地說,數(shù)據(jù)是一種物理符號(hào)的序列,用于記錄事物的情況,是對(duì)客觀事物及其屬性進(jìn)行的一種抽象化及符號(hào)化的描述。數(shù)據(jù)的概念應(yīng)包括數(shù)據(jù)的內(nèi)容和形式兩個(gè)方面。數(shù)據(jù)的內(nèi)容是指所描述的客觀事物的具體特性,也就是通常所說的數(shù)據(jù)的“值”;數(shù)據(jù)的形式則是指數(shù)據(jù)內(nèi)容所存儲(chǔ)的具體形式,即數(shù)據(jù)的“類型”。故此,數(shù)據(jù)可以用數(shù)據(jù)類型和值來表示。2. 數(shù)據(jù)庫(kù)(DataBase,DB)數(shù)據(jù)庫(kù)是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)部、有組織的、可共享的數(shù)據(jù)集合,即在計(jì)算機(jī)系統(tǒng)
3、中按一定的數(shù)據(jù)模型組織、存儲(chǔ)和使用的相關(guān)聯(lián)的數(shù)據(jù)集合成為數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按照一定的數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性、易擴(kuò)展性、集中性和共享性,以文件的形式存儲(chǔ)在存儲(chǔ)介質(zhì)上的。數(shù)據(jù)庫(kù)中的數(shù)據(jù)由數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行統(tǒng)一管理和控制,用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行的各種數(shù)據(jù)操作都是通過數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)。3. 數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,DBMS)數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,是為數(shù)據(jù)庫(kù)的建立、使用和維護(hù)而配置的軟件,是位于操作系統(tǒng)與用戶之間的一層數(shù)據(jù)管理軟件。主要功能是對(duì)數(shù)據(jù)庫(kù)進(jìn)行定義、操作、控制和管理.1)數(shù)據(jù)定義數(shù)據(jù)的定義包括:定義構(gòu)成
4、數(shù)據(jù)庫(kù)結(jié)構(gòu)的外模式、模式和內(nèi)模式,定義各個(gè)外模式和模式之間的映射,定義模式與內(nèi)模式之間的映射,定義有關(guān)的約束條件.2)數(shù)據(jù)處理對(duì)數(shù)據(jù)的處理操作主要包括對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的檢索、插入、修改和刪除等基本操作。3)安全管理對(duì)數(shù)據(jù)庫(kù)的安全管理主要體現(xiàn)在:對(duì)數(shù)據(jù)庫(kù)進(jìn)行并發(fā)控制、安全性檢查、完整性約束條件的檢查和執(zhí)行、數(shù)據(jù)庫(kù)的內(nèi)部維護(hù)(如索引、數(shù)據(jù)字典的自動(dòng)維護(hù))等。并且能夠管理和監(jiān)督用戶的權(quán)限,防止擁護(hù)有任何破壞或者惡意的企圖。4)數(shù)據(jù)的組織、存儲(chǔ)和管理負(fù)責(zé)分類地組織、存儲(chǔ)和管理數(shù)據(jù)庫(kù)數(shù)據(jù),確定以何種文件結(jié)構(gòu)和存取方式物理地組織數(shù)據(jù),如何實(shí)現(xiàn)數(shù)據(jù)之間的聯(lián)系,以便提高存儲(chǔ)空間利用以及提高隨機(jī)查找、順序查找、增加
5、、刪除和查改等操作的時(shí)間效率.5)建立和維護(hù)數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)數(shù)據(jù)的初始化與數(shù)據(jù)轉(zhuǎn)換等。維護(hù)數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)與恢復(fù)、數(shù)據(jù)庫(kù)的重組織與重構(gòu)造、性能的監(jiān)視與分析等。6)數(shù)據(jù)通信接口提供與其他軟件系統(tǒng)進(jìn)行通信的功能。4. 數(shù)據(jù)庫(kù)系統(tǒng)(DataBaseSystem,DBS數(shù)據(jù)庫(kù)系統(tǒng)指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成,一般有數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶構(gòu)成。1. 2數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)數(shù)據(jù)庫(kù)系統(tǒng)的點(diǎn)主要有:數(shù)據(jù)的結(jié)構(gòu)化、高共享性、低冗余度、易擴(kuò)充、較高的獨(dú)立性(物理數(shù)據(jù)獨(dú)立、邏輯數(shù)據(jù)獨(dú)立)以及數(shù)據(jù)由DBM院一管理和控制(數(shù)據(jù)的安全性Security保護(hù)、數(shù)據(jù)的完整性
6、Integrity保護(hù)、并發(fā)Concurrency控制、數(shù)據(jù)庫(kù)恢復(fù)Recovery)等.第二章數(shù)據(jù)庫(kù)性能優(yōu)化數(shù)據(jù)庫(kù)作為一種獨(dú)立的、有組織、的可共享的數(shù)據(jù)集合,數(shù)據(jù)的查詢?cè)L問是數(shù)據(jù)操作中頻度最高的操作.當(dāng)數(shù)據(jù)量和訪問頻率達(dá)到一定程度的時(shí)候,系統(tǒng)的響應(yīng)速度就至關(guān)重要了,這時(shí)候就需要對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)和方式進(jìn)行優(yōu)化,使其滿足系統(tǒng)需要的訪問響應(yīng)速度。2. 1性能影響因素常見的影響數(shù)據(jù)訪問速度的因素,有以下幾種:1 .沒有索引或者沒有用到索引數(shù)據(jù)庫(kù)索引就像書籍中目錄一樣,使用戶在訪問數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí),不必遍歷所有數(shù)據(jù)就可以找到需要的數(shù)據(jù)。創(chuàng)建索引后,可以保證每行數(shù)據(jù)的唯一性,極大地提高數(shù)據(jù)檢索效率,這是
7、一中犧牲空間換取性能的方法。沒有索引或者沒有用到索引是數(shù)據(jù)訪問速度慢最常見的因素,也是程序設(shè)計(jì)的一個(gè)缺陷所在.2 .I/O吞吐量小,形成了瓶頸效應(yīng)I/O吞吐量是影響數(shù)據(jù)訪問速度的客觀因素(硬件因素).在一定的硬件環(huán)境下,利用優(yōu)化的部署方案可適當(dāng)提高I/O吞吐量。3 .沒有創(chuàng)建計(jì)算列導(dǎo)致查詢不優(yōu)化計(jì)算列是一個(gè)比較特殊的列,不填寫任何設(shè)計(jì)類型,用戶不可以改變?cè)摿械闹怠S?jì)算列的值是通過一定的函數(shù)公式等以另一個(gè)或多個(gè)列的值為輸入值計(jì)算出的結(jié)果。如果沒相應(yīng)的計(jì)算列,在一些數(shù)據(jù)查詢的時(shí)候需要對(duì)已有數(shù)據(jù)進(jìn)行計(jì)算,從而浪費(fèi)一部分性能。4 .內(nèi)存不足對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的查詢?cè)L問毫無疑問會(huì)占用大量的內(nèi)存空間,當(dāng)內(nèi)存不足
8、的情況下,數(shù)據(jù)的訪問速度會(huì)受到明顯的影響甚至訪問出現(xiàn)超時(shí)情況,是影響數(shù)據(jù)訪問速度的客觀因素。5 .網(wǎng)絡(luò)速度慢網(wǎng)絡(luò)速度慢是影響數(shù)據(jù)訪問速度的客觀因素??赏ㄟ^提高網(wǎng)絡(luò)訪問的位寬來解決6 .查詢出的數(shù)據(jù)量過大當(dāng)查詢出的數(shù)據(jù)量過大時(shí),內(nèi)存的占用、系統(tǒng)時(shí)間的占用等都影響數(shù)據(jù)訪問的速度??梢圆捎枚啻尾樵?、定位查詢、和查詢數(shù)據(jù)量控制來解決。7 .鎖或者死鎖鎖或者死鎖在數(shù)據(jù)庫(kù)數(shù)據(jù)訪問時(shí)會(huì)造成訪問者等待時(shí)間過程或者永久無法獲取到資源.這是查詢慢最常見的因素之一,是程序設(shè)計(jì)的缺陷,要盡量避免.8 .返回不必要的行和列在一般的數(shù)據(jù)查詢中,都盡可能多的獲取數(shù)據(jù)信息,這樣造成了不必要的數(shù)據(jù)遍歷,大大的增加了數(shù)據(jù)訪問的響
9、應(yīng)的時(shí)間。所以在一般的查詢中,盡量查詢少的行和列,將數(shù)據(jù)遍歷時(shí)間降到最低以滿足數(shù)據(jù)輸出需求.9 .查詢語句不夠優(yōu)化在數(shù)據(jù)查詢?cè)L問過程中,使用最頻繁的是使用自定義的查詢語句進(jìn)行數(shù)據(jù)輸出的。所以編寫優(yōu)化的查詢語句能夠很大程度上提高數(shù)據(jù)查詢?cè)L問的速度2.2性能優(yōu)化數(shù)據(jù)庫(kù)性能優(yōu)化主要是提高數(shù)據(jù)訪問的速度,即提高數(shù)據(jù)庫(kù)響應(yīng)速度的性能指標(biāo)。性能優(yōu)化主要分為主觀因素和客觀因素兩部分的優(yōu)化。這里主要針對(duì)影響性能的客觀因素進(jìn)行優(yōu)化。2.2.1主觀因素優(yōu)化主觀因素主要是指服務(wù)器的硬件環(huán)境。主要優(yōu)化有以下幾個(gè)方面:1、把數(shù)據(jù)、日志、索引放到不同的I/O設(shè)備上,增加讀取速度,數(shù)據(jù)量越大,提高I/O吞吐量越重要;2、縱
10、向、橫向分割表,減少表的尺寸(sp_spaceuse);3、升級(jí)硬件;4、提高網(wǎng)絡(luò)訪問速度;5、擴(kuò)大服務(wù)器的內(nèi)存;配置虛擬內(nèi)存:虛擬內(nèi)存大小應(yīng)基于計(jì)算機(jī)上并發(fā)運(yùn)行的服務(wù)進(jìn)行配置,一般設(shè)置為物理內(nèi)存的1.5倍;如果安裝了全文檢索功能,并打算運(yùn)行Microsoft搜索服務(wù)以便執(zhí)行全文索引和查詢,可考慮將虛擬內(nèi)存大小設(shè)置為至少計(jì)算機(jī)中物理內(nèi)存的3倍;6、增加服務(wù)器CPU數(shù);其中并行處理比串行處理更需要資源。SQLSERVER艮據(jù)系統(tǒng)負(fù)載情況決定最優(yōu)的并行等級(jí),復(fù)雜的需要消耗大量的CPU的查詢適合并行處理。不過更新操作UPDATEINSERTDELET環(huán)能進(jìn)行并行處理.2.2.2客觀因素優(yōu)化客觀因素主
11、要指的是由于設(shè)計(jì)和開發(fā)中存在的缺陷和漏洞;主要優(yōu)化有以下幾個(gè)方面:1 .優(yōu)化索引(1)根據(jù)查詢條件建立優(yōu)化的索引、優(yōu)化訪問方式,限制結(jié)果集的數(shù)據(jù)量.注意填充因子要適當(dāng)(最好是使用默認(rèn)值0).索引應(yīng)該盡量小,使用字節(jié)數(shù)小的列建里索引(參照索引的創(chuàng)建),不要對(duì)有限的幾個(gè)值的字段建立單一索引(如性別字段)。(2)如果使用LIKE進(jìn)行查詢的話,簡(jiǎn)單的使用INDEX是不行的,全文索引又太耗費(fèi)空間。LIKE'N%使用索引,LIKE'%N'不使用索引.用LIKE'%N%'查詢時(shí),查詢耗時(shí)和字段值總長(zhǎng)度成正比,所以不能用CHAR1型而采用VARCHAR對(duì)于字段的值很長(zhǎng)的
12、字段建立全文索引。(3)重建索弓IDBCCREINDEXDBCCINDEXDEFRAG,縮數(shù)據(jù)和日志DBCCSHRINKDBDBCCSHRINKFILE.設(shè)置自動(dòng)收縮日志,對(duì)與大的數(shù)據(jù)庫(kù)不要設(shè)置數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng),它會(huì)降低服務(wù)器的性能.2 .數(shù)據(jù)庫(kù)部署優(yōu)化(1) DBSERVE島口APPLICATIONSERVE給離,OLTP和OLA吩離;聯(lián)合體是(2) 使用分區(qū)視圖。分布式分區(qū)視圖可用于實(shí)現(xiàn)數(shù)據(jù)庫(kù)服務(wù)器聯(lián)合體,組分開管理的服務(wù)器,他們互相協(xié)作分擔(dān)系統(tǒng)的處理負(fù)荷.A、在實(shí)現(xiàn)分區(qū)視圖之前,必須先水平分區(qū)表。R在創(chuàng)建成員表后,在每個(gè)服務(wù)器上定義一個(gè)分布式分區(qū)視圖,并且每個(gè)視圖具有相同的名稱。這樣引用分
13、布式分區(qū)視圖名的查詢可以在任何一個(gè)成員服務(wù)器上運(yùn)行。系統(tǒng)操作如同每個(gè)成員服務(wù)器都有一個(gè)原始表的復(fù)本一樣,不過每個(gè)服務(wù)器上其實(shí)只有一個(gè)成員表和一個(gè)分布式分區(qū)視圖.數(shù)據(jù)的位置對(duì)應(yīng)用程序是透明的。3.查詢語句優(yōu)化TSQL的寫法上有很大的講究,DBMSb理查詢計(jì)劃的過程是:a、查詢語句的詞法、語法檢查;b、將語句提交給DBMS勺查詢優(yōu)化器;c、優(yōu)化器做代數(shù)優(yōu)化和存取路徑的優(yōu)化;d、由預(yù)編譯模塊生成查詢規(guī)劃;e、在合適的時(shí)間提交給系統(tǒng)處理執(zhí)行;f、將執(zhí)行結(jié)果返回給用戶.(1)COMMITSROLLBACK勺區(qū)另ij:ROLLBACK!滾所有白事務(wù);COMMI喊交當(dāng)前的事務(wù).在動(dòng)態(tài)語句中寫事務(wù),t#將事務(wù)
14、寫在外面,如:BEGINTRANEXEC(SQL)COMMITTRAN或者將動(dòng)態(tài)SQL寫成函數(shù)或者存儲(chǔ)過程。(2)在大數(shù)據(jù)兩的查詢輸出SELEC9句中盡量不要使用自定義函數(shù),調(diào)用自定義函數(shù)的函數(shù)時(shí)系統(tǒng)調(diào)用是一個(gè)迭代過程,很影響查詢輸出性能的。在查詢字段時(shí)盡可能使用小字段兩輸出,并在WHERE?句或者使用SELECTTOP10/1PERCEN來限制返回的記錄數(shù),使用SETROWCOUNT艮制操作的記錄數(shù),避免整表掃描.返回不必要的數(shù)據(jù),不彳!浪費(fèi)了服務(wù)器的I/O資源,加重了網(wǎng)絡(luò)的負(fù)擔(dān),如果表很大的話,在表掃描期間將表鎖住,禁止其他的聯(lián)接訪問,后過很嚴(yán)重的.(3)SQL的注釋申明對(duì)執(zhí)行查詢輸出沒有
15、任何影響(4)使用計(jì)算列對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單計(jì)算,盡量避免在查詢語句中對(duì)數(shù)據(jù)進(jìn)行運(yùn)算。(5)盡可能不使用光標(biāo),它會(huì)占用大量的資源.如果需要ROWBY-RO燉執(zhí)行,盡量采用非光標(biāo)技術(shù),如:客戶端循環(huán)、臨時(shí)表、TABLE變量、子查詢、CASEg句(6)使用PROFILERS艮蹤查詢,得到查詢所需的時(shí)間,找出SQL的問題所在,用索引優(yōu)化器優(yōu)化索引.(7)注意UNIONF口UNIONALL的區(qū)別。在沒有必要的時(shí)候不要用DISINCT,它同UNION一樣會(huì)降低查詢速度,重復(fù)的記錄在查詢里是沒有問題的(8)用sp_configure'querygovernorcostlimit'或者SETQUE
16、RY_COVERNOR_COST_L解隈制查詢消耗的資源。當(dāng)評(píng)估查詢消耗的資源超出限制時(shí),服務(wù)器自動(dòng)取消查詢,在查詢之前就扼殺掉.SETLOCKTIME設(shè)置鎖的時(shí)間。(9)不要在WHER1句中列名加函數(shù),如CONVERTSUBSTRING,如果必須用函數(shù)的時(shí)候,創(chuàng)建計(jì)算列在創(chuàng)建索引來替代。NOTIN會(huì)多次掃描表,使用EXISTSNOTEXISTSIN、LEFTOUTERJOIN替代,其中EXISTS比IN更快,最慢的notB作。(10)使用QUERYANALYZERg看SQ四句的查詢計(jì)劃和評(píng)估分析是否是優(yōu)化的SQL一般20%勺代碼占用了80%勺資源,優(yōu)化的重點(diǎn)就是這些慢的地方。(11)如果使用
17、了IN或者OR等時(shí)發(fā)現(xiàn)查詢沒有走索引,使用顯式申明指定索引,如:Select*FromFA01(INDEX=IX_SEX)WhereAA0107IN('01','02')。(12)在需要對(duì)已有數(shù)據(jù)進(jìn)行比較復(fù)雜計(jì)算才能獲得查詢的結(jié)果數(shù)據(jù)時(shí),將需要查詢的結(jié)果預(yù)先計(jì)算好放在表中,查詢的時(shí)候在SELECT(13)數(shù)據(jù)庫(kù)有一個(gè)原則是代碼離數(shù)據(jù)越近越好,所有有限選擇DEFAULT依次為RULESCONSTRAINTPROCEDURO寫程序的質(zhì)量高,速度快。如果要插入大的二進(jìn)制到IMAGEDU,使用存儲(chǔ)過程,千萬不要用內(nèi)嵌INSERT直接才f入.因?yàn)檫@樣應(yīng)用程序首先將二進(jìn)制轉(zhuǎn)
18、換成字符串,服務(wù)器收到字符后又將他轉(zhuǎn)換成二進(jìn)制。存儲(chǔ)過程直接傳入二進(jìn)制參數(shù)即可,處理速度明顯改善,如:CREAT田ROCEDURE(fImage ) valuesimage_insertimagevarbinaryasInsertintotable(image)。(14)Between在某些時(shí)候比IN速度更快,更快地根據(jù)索引找到范圍。由于IN會(huì)比較多次,所以有時(shí)會(huì)慢些。(15)盡量不要建沒有作用的事務(wù)例如產(chǎn)生報(bào)表時(shí),浪費(fèi)資源,只有在必須使用事務(wù)時(shí)才建立合適的事務(wù)。(16)用OR的字句可以分解成多個(gè)查詢,并通過UNION連接多個(gè)查詢。速度取決與是否使用索引.如果查詢需要用聯(lián)合索引,用UNION
19、ALL執(zhí)行的效率更高些。(17)盡量少用視圖,視圖的效率低.對(duì)視圖操作比直接對(duì)表操作慢,可以用SROREDPROCEDURE代替。特別是不要用視圖嵌套,嵌套視圖增加了尋找原始資料的難度。視圖是存放在服務(wù)器上的被優(yōu)化好了的已經(jīng)產(chǎn)生查詢規(guī)劃的SQL對(duì)單表數(shù)據(jù)檢索時(shí),不要使用指向多表的視圖,否則增加了不必要的系統(tǒng)開銷,查詢也會(huì)受到干擾.沒有必要時(shí)不要用DISTINCT和ORDERBY這些動(dòng)作可以改在客戶端執(zhí)行,增加了額外的開銷,這同UNIONSUNIONALL原理相同。(18)當(dāng)使用SELECTINTO和CREATETABLE時(shí),會(huì)鎖住系統(tǒng)表(SYSOBJECTSSYSINDEXES9,從而阻塞其他
20、的連接的存取。所以千萬不要在事務(wù)內(nèi)部使用。如果經(jīng)常要用到臨時(shí)表時(shí)請(qǐng)使用實(shí)表或者臨時(shí)表變量。盡量少用臨時(shí)表,用結(jié)果集和TABLE類型的變量來代替。(19)在使用GROUBYHAVING?句時(shí),在使用前剔除多余的行,盡量避免使用HAVING子句剔除行工作.剔除行最優(yōu)的執(zhí)行順序是:SELECTSWHEREF句選擇所有合適的行,GROUPBY來分組統(tǒng)計(jì)行,HAVING字句用來剔除多余的分組.如果只是分組不進(jìn)行計(jì)算則DISTINCT比GROUPB速度快.2. 2.3SP編程內(nèi)容開發(fā)人員如果用到其他庫(kù)的TABLED者VIEW請(qǐng)?jiān)诋?dāng)前庫(kù)中建立VIEW來實(shí)現(xiàn)跨庫(kù)操作,最好不要直接使用“database。dbo
21、.table_name",因?yàn)閟p_depends不能顯示出該SP所使用的跨庫(kù)TABLE和VIEW不方便校驗(yàn).在提交SP前,請(qǐng)先使用SETSHOWPLANON分析過查詢計(jì)劃,做自身的查詢優(yōu)化檢查。優(yōu)化應(yīng)用程序得到高速的運(yùn)行效率,在SP編寫過程中應(yīng)該注意以下幾點(diǎn):1 .SQL使用規(guī)范A盡量避免大事務(wù)操作,慎用HOLDLOCK句,提高系統(tǒng)并發(fā)能力.B盡量避免反復(fù)訪問同一張或幾張表,尤其是數(shù)據(jù)量較大的表,可以考慮先根據(jù)條件提取數(shù)據(jù)到臨時(shí)表中,然后再做連接。G盡量避免使用游標(biāo),因?yàn)橛螛?biāo)的性能較差,如果游標(biāo)操作的數(shù)據(jù)超過一萬行,那么就應(yīng)該改寫,如果使用了游標(biāo),就盡量避免在游標(biāo)循環(huán)中再進(jìn)行表連接操作??谧⒁釽HEREF句寫法,必須考慮語句順序,應(yīng)該根據(jù)索引順序、范圍大小來確定條件子句的前后順序,盡可能的讓字段順序與索引順序一直,范圍從大到小。盡量不要在WHER子句中的“="左邊進(jìn)行函數(shù)、算術(shù)或其他表達(dá)式運(yùn)算,否則系統(tǒng)可能無法正確使用索引。盡量使用“>=”,不使用“>”。E、盡量使用EXISTS代替SELECTCOUN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版家庭幫傭中介協(xié)議書例本版B版
- 2024版車輛掛名下協(xié)議書
- 2024年重慶二手住宅交易協(xié)議3篇
- 二零二五年度智能物流服務(wù)置換股權(quán)合作合同范本3篇
- 2024年黃金現(xiàn)貨交易合同樣本
- 2024版補(bǔ)充合同可簽署次數(shù)詳解版
- 2024特種車輛租賃及應(yīng)急服務(wù)合同
- 2025年度虛擬現(xiàn)實(shí)(VR)應(yīng)用開發(fā)委托開發(fā)合同樣本3篇
- 二零二五年度綠色建筑項(xiàng)目施工合同含節(jié)能減排標(biāo)準(zhǔn)2篇
- 2024年短期工作任務(wù)派遣合同
- 重癥醫(yī)學(xué)質(zhì)量控制中心督查評(píng)價(jià)標(biāo)準(zhǔn)及評(píng)分細(xì)則(2020版)
- 中建醫(yī)療工程交付指南
- 2024年甘肅省職業(yè)院校技能大賽養(yǎng)老照護(hù)(中職學(xué)生組)賽項(xiàng)樣題1
- 圓圈正義讀書分享課件
- 安平縣2024年小升初必考題數(shù)學(xué)檢測(cè)卷含解析
- 人教版數(shù)學(xué)二年級(jí)下冊(cè)全冊(cè)核心素養(yǎng)目標(biāo)教學(xué)設(shè)計(jì)
- 人教版PEP小學(xué)英語三年級(jí)下冊(cè)單詞表(帶音標(biāo))
- 康美藥業(yè)財(cái)務(wù)分析案例
- 《無人機(jī)駕駛航空試驗(yàn)基地(試驗(yàn)區(qū))基礎(chǔ)設(shè)施使用、管理規(guī)范(征求意見稿)》
- 寵物醫(yī)療行業(yè)人力資源管理戰(zhàn)略研究
- 《了凡四訓(xùn)》略說教學(xué)課件
評(píng)論
0/150
提交評(píng)論