日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
優(yōu)化數(shù)據(jù)庫性能:掌握with關(guān)鍵字技巧(數(shù)據(jù)庫with關(guān)鍵字)

現(xiàn)今的信息世界中,數(shù)據(jù)庫技術(shù)扮演著越來越重要的角色,極大地影響了現(xiàn)代社會的運(yùn)轉(zhuǎn)。而優(yōu)化數(shù)據(jù)庫性能則是在這些數(shù)據(jù)中最為關(guān)鍵的問題之一,因?yàn)殡S著數(shù)據(jù)量的不斷增加,原本優(yōu)秀的性能也會逐漸變得不盡如人意,造成訪問速度慢、響應(yīng)時間長等問題,從而影響企業(yè)的運(yùn)營效率。對于這樣的問題,掌握SQL中的with關(guān)鍵字技巧便是一個十分重要的解決辦法。

創(chuàng)新互聯(lián)公司專注于蘇州企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),成都商城網(wǎng)站開發(fā)。蘇州網(wǎng)站建設(shè)公司,為蘇州等地區(qū)提供建站服務(wù)。全流程按需定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

一、with關(guān)鍵字的基本概念

我們來認(rèn)識一下with關(guān)鍵字。在SQL中,with關(guān)鍵字原名為“公式名”,是一種創(chuàng)建臨時表格的方法。其語法形式如下:

with ( , … )

AS (

)

;

這段語句中的是一條標(biāo)準(zhǔn)的SELECT語句,如果它是常規(guī)SELECT語句的形式,則就是唯一的表格名稱。而與這個表格關(guān)聯(lián),這就相當(dāng)于一個標(biāo)準(zhǔn)的SELECT語句,可以從這個表格中檢索數(shù)據(jù)。

使用with關(guān)鍵字時,我們可以通過建立臨時表格的方式,將計(jì)算開銷較大的自查詢提出,避免自查詢引起的無謂的開銷,提高性能。

二、應(yīng)用示例

接下來,我們來看一個with關(guān)鍵字的應(yīng)用示例。

假設(shè)我們有一個員工薪資表salary,結(jié)構(gòu)如下:

salary(id, name, base, month)

現(xiàn)在,我們想通過計(jì)算查詢出所有員工的總薪資和平均薪資,并同時按不同月份進(jìn)行區(qū)分。此時,我們可以采用常規(guī)的SELECT語句,如下所示:

SELECT

MONTH,

SUM(BASE),

AVG(BASE)

FROM

salary

GROUP BY

MONTH;

上面的語句在執(zhí)行時,首先需要讀取salary表的數(shù)據(jù),然后再對讀取出來的所有數(shù)據(jù)進(jìn)行GROUP BY處理,這樣就會比較耗費(fèi)計(jì)算資源,降低查詢速度。此時,我們可以通過使用with關(guān)鍵字來提高查詢效率。實(shí)現(xiàn)過程如下:

WITH

base_sum AS (SELECT MONTH, SUM(BASE) AS TOTAL FROM salary GROUP BY MONTH),

base_avg AS (SELECT MONTH, AVG(BASE) AS AVERAGE FROM salary GROUP BY MONTH)

SELECT

base_sum.MONTH,

base_sum.TOTAL,

base_avg.AVERAGE

FROM

base_sum

JOIN base_avg ON base_sum.MONTH = base_avg.MONTH;

上面的語句中,我們用到了兩個臨時表格base_sum和base_avg,用來分別計(jì)算每個月份的員工總薪資和平均薪資。同時我們進(jìn)行了JOIN操作來將兩個表格中的數(shù)據(jù)進(jìn)行對應(yīng)關(guān)聯(lián),實(shí)現(xiàn)了我們需要的結(jié)果。這個方法能夠使得查詢速度得到較大的提升。

三、with關(guān)鍵字與其他查詢技術(shù)的比較

到這里,你可能會問:這個方法好不好呢?會不會與其他的查詢方法形同虛設(shè)呢?

實(shí)際上,使用with關(guān)鍵字進(jìn)行查詢,效果還是非常不錯的。與其他一些查詢方法相比,with關(guān)鍵字擁有以下幾個顯著的優(yōu)點(diǎn):

1.提高查詢性能

由于它使得將復(fù)雜的自查詢語句轉(zhuǎn)化為零散的小查詢語句成為可能,從而減少了數(shù)據(jù)庫操作的次數(shù),因此可以減少計(jì)算的開銷,從而更快地獲取所需的數(shù)據(jù)。

2.使代碼更加易讀和易維護(hù)

with關(guān)鍵字可以將比較復(fù)雜的代碼塊拆分為多個部分,每個部分都可以進(jìn)行單獨(dú)的操作。這樣可以使得代碼的結(jié)構(gòu)更加優(yōu)雅易讀,也便于后續(xù)的代碼維護(hù)。

3.能夠重復(fù)使用

我們可以在查詢中多次使用臨時表格,從而可以避免多次執(zhí)行同樣的代碼塊。這樣,我們也可以得到更好的性能。

四、

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!

SQL數(shù)據(jù)庫中臨時表,臨時變量和with as關(guān)鍵詞創(chuàng)建“臨時表”的區(qū)別

》臨時表:物理上存在的,使用時與正式表無差別;只是禪槐在會話結(jié)束時,DBy引擎會將它自動刪除;

》臨時變量:形式上是個變量,而賀首友不是表;同樣是在會話中有效;會話結(jié)束,就消失;

》WITH … AS是公共表達(dá)式(CTE)的語法表示,芹做它只是邏輯概念,沒有物理對象。

一個類似情況就是View(相對于Table),沒有物理對象。

但View至少還有定義存貯在DB系統(tǒng)表中,而CTE只是一種語法表示(僅在執(zhí)行時才會被解析、翻譯)。

如何閱讀Cognos生成的SQL

當(dāng)Cognos應(yīng)用時直接從關(guān)系數(shù)據(jù)庫讀取數(shù)據(jù)時,通過 Cognos ReportStudio 查看的到的SQL形式大致如下:

with “RPT_MON_DMS3” as (

select distinct *

from “RPT_HQ”.”RPT_MON_DMS”),

“期間” as (

select “RPT_MON_DMS3″.”RPT_MON” “RPT_MON”, “RPT_MON_DMS3″.”MON_NM” “MON_NM”, “RPT_MON_DMS3″.”YEAR_ID” “YEAR_ID”

from “RPT_MON_DMS3”

where “RPT_MON_DMS3”.”RPT_NM”=’RPT_PA_INDV_CUST_NO_FCT’)

select distinct “期間”.”YEAR_ID” “年key”, “期間”.”RPT_MON” “日key”, “慎滲期間”.”MON_NM” “New_Query_Item”

from “期間”

SELECT {….} DIMENSION PROPERTIES PARENT_LEVEL, CHILDREN_CARDINALITY ON AXIS(0) FROM

上面是一段典型的Cognos生成的SQL,with后面跟著兩個子查詢”RPT_MON_DMS3″和”期間” ,后面帶下劃線的是一段主查詢,這是一個單一SQL組成的查詢語句,此處的SQL也可能由多個語句組成,但是在語句和語句之間沒有明顯的分隔符號,只能靠SQL語法來閱讀,由于Cognos生成的SQL一般帶有with關(guān)鍵字,而且一個SQL語句只有一個with關(guān)鍵字,因此可以從with關(guān)鍵字的出現(xiàn)來判斷SQL語句的間隔位置,如果這樣仍然不方便閱讀的話,可以使用TOAD等工具的格式化功能,可能更容易閱讀。

最后一段是Cognos的MDX多維查詢語句,此語句的產(chǎn)生,說明最終的查詢結(jié)果是經(jīng)過了Cognos的本地處理過程而獲得的,即Cognos通過前面的一個或者多個SQL語句的查詢結(jié)果放在Cognos的對應(yīng)用服務(wù)器上,再通過Cognos的多維處理引擎處理,最終生成結(jié)果。一般這個MDX語句會出現(xiàn)在整個查詢語句的最后階段,并且該語句無法直接提交給關(guān)系數(shù)據(jù)庫執(zhí)行。

c#using和with的用法

1、using關(guān)鍵字用于管理對象閉塌舉的生命周期。一旦對象完成使用,便會自動被銷毀,無需手動釋放對象占用的資源。using語句通常用于操作需要釋放非托管資源(如文件、數(shù)據(jù)庫連接等)的類。

2、with關(guān)鍵字在C#語言中沒有特定的用途。在其他編程語言中,with一般用于簡化代碼中的重復(fù)操轎碧作。但在C#中,with只是一個保留關(guān)鍵字,沒有實(shí)衫散際用途。

數(shù)據(jù)庫with關(guān)鍵字的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫with關(guān)鍵字,優(yōu)化數(shù)據(jù)庫性能:掌握with關(guān)鍵字技巧,SQL數(shù)據(jù)庫中臨時表,臨時變量和with as關(guān)鍵詞創(chuàng)建“臨時表”的區(qū)別,如何閱讀Cognos生成的SQL,c#using和with的用法的信息別忘了在本站進(jìn)行查找喔。

創(chuàng)新互聯(lián)(cdcxhl.com)提供穩(wěn)定的云服務(wù)器,香港云服務(wù)器,BGP云服務(wù)器,雙線云服務(wù)器,高防云服務(wù)器,成都云服務(wù)器,服務(wù)器托管。精選鉅惠,歡迎咨詢:028-86922220。


網(wǎng)頁名稱:優(yōu)化數(shù)據(jù)庫性能:掌握with關(guān)鍵字技巧(數(shù)據(jù)庫with關(guān)鍵字)
分享網(wǎng)址:http://www.5511xx.com/article/dphpsso.html