java查看sql视图_SQL视图与MS Access查询
使用傳遞查詢(xún)(PT)或視圖意味著在兩種情況下SQL都是服務(wù)器端 . 因此,使用PT查詢(xún),視圖和從Access調(diào)用存儲(chǔ)過(guò)程之間的性能差異并不大 .
PT查詢(xún)的主要缺點(diǎn)是它們是只讀的 . 因此VBA代碼和表單無(wú)法根據(jù)PT查詢(xún)更新內(nèi)容 .
但是視圖是可更新的,性能是相同的 .
如果表單直接通過(guò)表鏈接綁定到sql server上的表(例如100萬(wàn)行),那么這樣的設(shè)置就好了如果您在啟動(dòng)該表單時(shí)始終使用標(biāo)準(zhǔn)VBA where子句打開(kāi)表單 .
因?yàn)樵L問(wèn)表單基于一個(gè)表(和一個(gè)要編輯的記錄),所以在這種情況下,通過(guò)使用PT查詢(xún),視圖,存儲(chǔ)過(guò)程或只是標(biāo)準(zhǔn)鏈接表到sql server,你獲得零性能(沒(méi)有性能優(yōu)勢(shì)) .
但是在你的問(wèn)題中,你提到了帶有多個(gè)表/連接等的“復(fù)雜”sql .
在這種情況下,PT查詢(xún)適用于報(bào)告,并且可能某種形式“顯示”用于搜索的數(shù)據(jù)等 . 然而,用于編輯的表格必須是視圖或鏈接表 . 所述的PT查詢(xún)是只讀的 .
由于99%的表單都基于一個(gè)表,然后繼續(xù)使用鏈接表到sql server將執(zhí)行得很好(只需記住上面的規(guī)則,總是將這些表單打開(kāi)到一個(gè)記錄) .
因此,PT查詢(xún)和視圖實(shí)際上是相同的 - 它們都運(yùn)行服務(wù)器端 . 唯一真正的區(qū)別是你不能存儲(chǔ)PT查詢(xún)服務(wù)器端,但你可以查看 . 因此,“視圖”實(shí)際上非常類(lèi)似于訪問(wèn)中的本地保存查詢(xún) - 與PT =只讀相比,它是讀/寫(xiě) .
因此,對(duì)于報(bào)告,您可以輕松設(shè)置pt查詢(xún),但對(duì)于參數(shù)和過(guò)濾,您會(huì)發(fā)現(xiàn)視圖是更好的選擇 . (因?yàn)槿绻性搱?bào)告的現(xiàn)有VBA過(guò)濾器代碼 - 它可以保持不變,并且只有滿(mǎn)足過(guò)濾器的記錄(where子句 - 而不是實(shí)際的報(bào)告過(guò)濾器)才會(huì)被遵守 .
請(qǐng)注意,如果表單或報(bào)表基于一個(gè)表(鏈接表),則Access的工作相當(dāng)不錯(cuò) . 在這種情況下,Access僅會(huì)在您打開(kāi)報(bào)表或表單時(shí)提取符合您提供的“where”子句的記錄 .
這意味著對(duì)于基于Access中的復(fù)雜查詢(xún)的報(bào)表,您將查詢(xún)轉(zhuǎn)換為sql server側(cè)視圖,現(xiàn)在將報(bào)表鏈接到該視圖以代替查詢(xún) . 這很好,因?yàn)槿缜八?#xff0c;您的過(guò)濾器將像以前一樣工作,并且您不會(huì)經(jīng)歷設(shè)置PT查詢(xún)的所有麻煩,這往往比創(chuàng)建該視圖更麻煩 .
因此,PT查詢(xún)不比視圖更好也更快,但視圖有幾個(gè)優(yōu)點(diǎn) . 它往往意味著Access客戶(hù)端沒(méi)有代碼更改,并且如上所述,視圖是讀/寫(xiě)而不是PT查詢(xún)是只讀的 .
所以PT和視圖都運(yùn)行服務(wù)器端,但為了便于開(kāi)發(fā)和訪問(wèn)端代碼的最少更改,那么視圖往往是一個(gè)更好的選擇,此外,如上所述,PT查詢(xún)不是存儲(chǔ)在服務(wù)器端,但肯定將PT查詢(xún)發(fā)送到服務(wù)器時(shí)運(yùn)行服務(wù)器端 .
總結(jié)
以上是生活随笔為你收集整理的java查看sql视图_SQL视图与MS Access查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 组件 未显示出来_java –
- 下一篇: java 新建double对象_java