1 就是使用call 在只用call方式調(diào)用函數(shù)的時(shí)候,必須加要括號(hào),有參數(shù),還要加參數(shù)值 這個(gè)方式在命令窗口,調(diào)用過程,將不會(huì)出現(xiàn)輸入的數(shù)據(jù). 2 就是使用exec 命令,進(jìn)行命令調(diào)用過程, 使用命令,就必須在命令行里面輸入 過程名,這個(gè)命令窗口中,可加可不加() ,如果有參數(shù)的,就一定要加,還有參數(shù)值,參數(shù)值的類型要與 變量類型相同. 3 在語句塊中進(jìn)行調(diào)用過程,這個(gè)方式和命令模式類似,他們都是可要可不要(), -- 在2 和 3 中的 沒有括號(hào)的情況是,過程沒有參數(shù) ,如果有,就必須要有()。
1.Access數(shù)據(jù)庫的DSN-less連接方法: set adocon=Server.Createobject("adodb.connection") adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _ Server.MapPath("數(shù)據(jù)庫所在路徑") 2.Access OLE DB連接方法: set adocon=Server.Createobject("adodb.connection") adocon.open"Provider=Microsoft.Jet.OLEDB.4.0;"& _ "Data Source=" & Server.MapPath("數(shù)據(jù)庫所在路徑") 3.SQL server連接方法: set adocon=server.createobject("adodb.recordset") adocon.Open"Driver={SQL Server};Server=(Local);UID=***;PWD=***;"& _ "database=數(shù)據(jù)庫名;" 4.SQL server OLE DB連接方法: set adocon=Server.Createobject("adodb.connection") adocon.open"provider=SQLOLEDB.1;Data Source=RITANT4;"& _ "user ID=***;Password=***;"& _ "inital Catalog=數(shù)據(jù)庫名" 5.Oracle 連接方法: set adocon=Server.Createobject("adodb.connection") adocon.open"Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;" 6.Oracle OLE DB 連接方法: set adocon=Server.Createobject("adodb.connection") adocon.open"Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;" 7.dBase 連接方法: set adocon=Server.Createobject("adodb.connection") adocon.open"Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;" 8.mySQL 連接方法: set adocon=Server.Createobject("adodb.connection") adocon.open"Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;" 9.Visual Foxpro 連接方法: set adocon=Server.Createobject("adodb.connection") adocon.open"Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;" 10.MS text 連接方法: set adocon=Server.Createobject("adodb.connection") adocon.open"Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;"&_ "extensions=asc,csv,tab,txt;Persist SecurityInfo=false;" 11.MS text OLE DB 連接方法: set adocon=Server.Createobject("adodb.connection") adocon.open"Provider=microsof.jet.oledb.4.0;data source=your_path;"&_ "Extended Properties'text;FMT=Delimited'" 回答者:zhequ - 助理 二級(jí) 1-5 10:12 上面是用本地服務(wù)器 這個(gè)是在其他地方也可以用 esinc是mdb的文件名自己改。
在ASP中可以通過三種方式訪問數(shù)據(jù)庫:
1、IDC(Internet Database Connector)方式;
2、ADO(ActiveX Data Objects)方式;
3、RDS(Remote Data Service)方式。
這三種訪問方式對(duì)數(shù)據(jù)庫的訪問都是由Internet Information Server完成的。通過Web瀏覽器用HTTP協(xié)議向IIS(Internet信息服務(wù)器)發(fā)送請(qǐng)求,IIS執(zhí)行對(duì)數(shù)據(jù)庫的訪問,并返回一個(gè)HTML格式的文檔響應(yīng)
type 4:本地協(xié)議驅(qū)動(dòng)Type 1: jdbc-odbc橋Jdbc-odbc 橋 是sun公司提供的,是jdk提供的的標(biāo)準(zhǔn)api. 這種類型的驅(qū)動(dòng)實(shí)際是把所有 jdbc的調(diào)用傳遞給odbc ,再由odbc調(diào)用本地?cái)?shù)據(jù)庫驅(qū)動(dòng)代碼.( 本地?cái)?shù)據(jù)庫驅(qū)動(dòng)代碼是指 由數(shù)據(jù)庫廠商提供的數(shù)據(jù)庫操作二進(jìn)制代碼庫,例如在oracle for windows中就是oci dll 文 件)jdbc-odbc橋 | odbc | 廠商DB代碼---------------數(shù)據(jù)庫Server只要本地機(jī)裝有相關(guān)的odbc驅(qū)動(dòng)那么采用jdbc-odbc橋幾乎可以訪問所有的數(shù)據(jù)庫,jdbc- odbc方法對(duì)于客戶端已經(jīng)具備odbc driver的應(yīng)用還是可行的.但是,由于jdbc-odbc先調(diào)用 odbc再由odbc去調(diào)用本地?cái)?shù)據(jù)庫接口訪問數(shù)據(jù)庫.所以,執(zhí)行效率比較低,對(duì)于那些大數(shù)據(jù)量 存取的應(yīng)用是不適合的.而且,這種方法要求客戶端必須安裝odbc 驅(qū)動(dòng),所以對(duì)于基于 internet ,intranet的應(yīng)用也是不合適的.因?yàn)?,你不可能要求所有客戶都能找到odbc driver.=====一般ACCESS用到的比較多,初學(xué)者用。
實(shí)際項(xiàng)目是不用的。Type 2: 本地Api驅(qū)動(dòng)本地api驅(qū)動(dòng)直接把jdbc調(diào)用轉(zhuǎn)變?yōu)閿?shù)據(jù)庫的標(biāo)準(zhǔn)調(diào)用再去訪問數(shù)據(jù)庫.這種方法需要本地 數(shù)據(jù)庫驅(qū)動(dòng)代碼. 本地api驅(qū)動(dòng) | 廠商DB代碼---------------數(shù)據(jù)庫Server (圖二) 這種驅(qū)動(dòng)比起jdbc-odbc橋執(zhí)行效率大大提高了.但是,它仍然需要在客戶端加載數(shù)據(jù)庫廠商 提供的代碼庫.這樣就不適合基于internet的應(yīng)用.并且,他的執(zhí)行效率比起3,4型的jdbc驅(qū)動(dòng) 還是不夠高.Type3:網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng) 這種驅(qū)動(dòng)實(shí)際上是根據(jù)我們熟悉的三層結(jié)構(gòu)建立的. jdbc先把對(duì)數(shù)局庫的訪問請(qǐng)求傳遞給網(wǎng) 絡(luò)上的中間件服務(wù)器. 中間件服務(wù)器再把請(qǐng)求翻譯為符合數(shù)據(jù)庫規(guī)范的調(diào)用,再把這種調(diào)用 傳給數(shù)據(jù)庫服務(wù)器.如果中間件服務(wù)器也是用java開法的,那么在在中間層也可以使用1,2型 jdbc驅(qū)動(dòng)程序作為訪問數(shù)據(jù)庫的方法. 網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng)---------中間件服務(wù)器------------數(shù)據(jù)庫Server由于這種驅(qū)動(dòng)是基于server的.所以,它不需要在客戶端加載數(shù)據(jù)庫廠商提供的代碼庫.而且 他在執(zhí)行效率和可升級(jí)性方面是比較好的.因?yàn)榇蟛糠止δ軐?shí)現(xiàn)都在server端,所以這種驅(qū)動(dòng) 可以設(shè)計(jì)的很小,可以非??焖俚募虞d到內(nèi)存中. 但是,這種驅(qū)動(dòng)在中間件層仍然需要有配置 其它數(shù)據(jù)庫驅(qū)動(dòng)程序,并且由于多了一個(gè)中間層傳遞數(shù)據(jù),它的執(zhí)行效率還不是最好.Type4 本地協(xié)議驅(qū)動(dòng)這種驅(qū)動(dòng)直接把jdbc調(diào)用轉(zhuǎn)換為符合相關(guān)數(shù)據(jù)庫系統(tǒng)規(guī)范的請(qǐng)求.由于4型驅(qū)動(dòng)寫的應(yīng)用可 以直接和數(shù)據(jù)庫服務(wù)器通訊.這種類型的驅(qū)動(dòng)完全由java實(shí)現(xiàn),因此實(shí)現(xiàn)了平臺(tái)獨(dú)立性. 本地協(xié)議驅(qū)動(dòng)---------數(shù)據(jù)庫Server由于這種驅(qū)動(dòng)不需要先把jdbc的調(diào)用傳給odbc或本地?cái)?shù)據(jù)庫接口或者是中間層服務(wù)器.所 以它的執(zhí)行效率是非常高的.而且,它根本不需要在客戶端或服務(wù)器端裝載任何的軟件或驅(qū)動(dòng). 這種驅(qū)動(dòng)程序可以動(dòng)態(tài)的被下載.但是對(duì)于不同的數(shù)據(jù)庫需要下載不同的驅(qū)動(dòng)程序.Jdbc-odbc橋由于它的執(zhí)行效率不高,更適合做為開發(fā)應(yīng)用時(shí)的一種過度方案,或著對(duì)于初學(xué) 者了解jdbc編程也較適用. 對(duì)于那些需要大數(shù)據(jù)量操作的應(yīng)用程序則應(yīng)該考慮2,3,4型驅(qū)動(dòng).在intranet方面的應(yīng)用可以 考慮2型驅(qū)動(dòng),但是由于3,4型驅(qū)動(dòng)在執(zhí)行效率上比2型驅(qū)動(dòng)有著明顯的優(yōu)勢(shì),而且目前開發(fā) 的趨勢(shì)是使用純java.所以3,4型驅(qū)動(dòng)也可以作為考慮對(duì)象. 至于基于internet方面的應(yīng)用就只有考慮3,4型驅(qū)動(dòng)了. 因?yàn)?型驅(qū)動(dòng)可以把多種數(shù)據(jù)庫驅(qū) 動(dòng)都配置在中間層服務(wù)器.所以3型驅(qū)動(dòng)最適合那種需要同時(shí)連接多個(gè)不同種類的數(shù)據(jù)庫, 并且對(duì)并發(fā)連接要求高的應(yīng)用. 4型驅(qū)動(dòng)則適合那些連接單一數(shù)據(jù)庫的工作組應(yīng)用。
1.引言 數(shù)據(jù)庫調(diào)優(yōu)可以使數(shù)據(jù)庫應(yīng)用運(yùn)行得更快,它需要綜合考慮各種復(fù)雜的因素。
將數(shù)據(jù)均 勻分布在磁盤上可以提高I/O 利用率,提高數(shù)據(jù)的讀寫性能;適當(dāng)程度的非規(guī)范化可以改善 系統(tǒng)查詢性能;建立索引和編寫高效的SQL 語句能有效避免低性能操作;通過鎖的調(diào)優(yōu)解 決并發(fā)控制方面的性能問題。 數(shù)據(jù)庫調(diào)優(yōu)技術(shù)可以在不同的數(shù)據(jù)庫系統(tǒng)中使用,它不必糾纏于復(fù)雜的公式和規(guī)則,然 而它需要對(duì)程序的應(yīng)用、數(shù)據(jù)庫管理系統(tǒng)、查詢處理、并發(fā)控制、操作系統(tǒng)以及硬件有廣泛 而深刻的理解。
2.計(jì)算機(jī)硬件調(diào)優(yōu) 2.1 數(shù)據(jù)庫對(duì)象的放置策略 利用數(shù)據(jù)庫分區(qū)技術(shù),均勻地把數(shù)據(jù)分布在系統(tǒng)的磁盤中,平衡I/O 訪問,避免I/O 瓶頸: (1)訪問分散到不同的磁盤,即使用戶數(shù)據(jù)盡可能跨越多個(gè)設(shè)備,多個(gè)I/O 運(yùn)轉(zhuǎn),避免 I/O 競(jìng)爭(zhēng),克服訪問瓶頸;分別放置隨機(jī)訪問和連續(xù)訪問數(shù)據(jù)。 (2)分離系統(tǒng)數(shù)據(jù)庫I/O 和應(yīng)用數(shù)據(jù)庫I/O,把系統(tǒng)審計(jì)表和臨時(shí)庫表放在不忙的磁盤 上。
(3)把事務(wù)日志放在單獨(dú)的磁盤上,減少磁盤I/O 開銷,這還有利于在障礙后恢復(fù),提 高了系統(tǒng)的安全性。 (4)把頻繁訪問的“活性”表放在不同的磁盤上;把頻繁用的表、頻繁做Join的表分別 放在單獨(dú)的磁盤上,甚至把頻繁訪問的表的字段放在不同的磁盤上,把訪問分散到不同的磁 盤上,避免I/O 爭(zhēng)奪。
2.2 使用磁盤硬件優(yōu)化數(shù)據(jù)庫 RAID (獨(dú)立磁盤冗余陣列)是由多個(gè)磁盤驅(qū)動(dòng)器(一個(gè)陣列)組成的磁盤系統(tǒng)。通過將磁盤陣列當(dāng)作一個(gè)磁盤來對(duì)待,基于硬件的RAID允許用戶管理多個(gè)磁盤。
使用基于硬件的 RAID與基于操作系統(tǒng)的RAID相比較,基于硬件的RAID能夠提供更佳的性能。如果使用基于操作系統(tǒng)的RAID,那么它將占據(jù)其他系統(tǒng)需求的CPU周期;通過使用基于硬件的RAID, 用戶在不關(guān)閉系統(tǒng)的情況下能夠替換發(fā)生故障的驅(qū)動(dòng)器。
SQL Server 一般使用RAID等級(jí)0、1 和5。 RAID 0 是傳統(tǒng)的磁盤鏡象,陣列中每一個(gè)磁盤都有一個(gè)或多個(gè)磁盤拷貝,它主要用來 提供最高級(jí)的可靠性,使RAID 0成倍增加了寫操作卻可以并行處理多個(gè)讀操作,從而提高 了讀操作的性能。
RAID 1 是磁盤鏡像或磁盤雙工,能夠?yàn)槭聞?wù)日志保證冗余性。 RAID 5帶奇偶的磁盤條帶化,即將數(shù)據(jù)信息和校驗(yàn)信息分散到陣列的所有磁盤中,它可以消除一個(gè)校驗(yàn)盤的瓶頸和單點(diǎn)失效問題,RAID 5 也會(huì)增加寫操作,也可以并行處理一個(gè)讀操作,還 可以成倍地提高讀操作的性能。
相比之下,RAID 5 增加的寫操作比RAID 0 增加的要少許多。在實(shí)際應(yīng)用中,用戶的讀操作要求遠(yuǎn)遠(yuǎn)多于寫操作請(qǐng)求,而磁盤執(zhí)行寫操作的速度很快,以至于用戶幾乎感覺不到增加的時(shí)間,所以增加的寫操作負(fù)擔(dān)不會(huì)帶來什么問題。
在性能較好的服務(wù)器中一般都會(huì)選擇使用RAID 5 的磁盤陣列卡來實(shí)現(xiàn),對(duì)于性能相對(duì)差一些的服務(wù)器也可利用純軟件的方式來實(shí)現(xiàn)RAID 5。 3.關(guān)系系統(tǒng)與應(yīng)用程序調(diào)優(yōu) 3.1 應(yīng)用程序優(yōu)化 從數(shù)據(jù)庫設(shè)計(jì)者的角度來看,應(yīng)用程序無非是實(shí)現(xiàn)對(duì)數(shù)據(jù)的增加、修改、刪除、查詢和體現(xiàn)數(shù)據(jù)的結(jié)構(gòu)和關(guān)系。
設(shè)計(jì)者在性能方面的考慮因素,總的出發(fā)點(diǎn)是:把數(shù)據(jù)庫當(dāng)作奢侈 的資源看待,在確保功能的同時(shí),盡可能少地動(dòng)用數(shù)據(jù)庫資源。包括如下原則: (1)不訪問或少訪問數(shù)據(jù)庫; (2)簡(jiǎn)化對(duì)數(shù)據(jù)庫的訪問; (3)使訪問最優(yōu); (4)對(duì)前期及后續(xù)的開發(fā)、部署、調(diào)整提出要求,以協(xié)助實(shí)現(xiàn)性能目標(biāo)。
另外,不要直接執(zhí)行完整的SQL 語法,盡量通過存儲(chǔ)過程來調(diào)用SQL Server??蛻襞c服務(wù)器連接時(shí),建立連接池,讓連接盡量得以重用,以避免時(shí)間與資源的損耗。
非到不得已, 不要使用游標(biāo)結(jié)構(gòu),確實(shí)使用時(shí),注意各種游標(biāo)的特性。
在ASP中可以通過三種方式訪問數(shù)據(jù)庫: 1、IDC(Internet Database Connector)方式; 2、ADO(ActiveX Data Objects)方式; 3、RDS(Remote Data Service)方式。
這三種訪問方式對(duì)數(shù)據(jù)庫的訪問都是由Internet Information Server完成的。通過Web瀏覽器用HTTP協(xié)議向IIS(Internet信息服務(wù)器)發(fā)送請(qǐng)求,IIS執(zhí)行對(duì)數(shù)據(jù)庫的訪問,并返回一個(gè)HTML格式的文檔響應(yīng)。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時(shí)間:3.229秒