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