中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle學習篇之SQL語句的優化

發布時間:2020-07-08 05:30:52 來源:網絡 閱讀:409 作者:yangrongze123 欄目:關系型數據庫

Oracle學習篇之SQL語句的優化

①在使用SELECT語句查詢時,不要用“*”代替所有列名,因為這樣的寫法對Oracle系統來說會存在解析的動態問題。Oracle系統會通過查詢數據字典來將“*”轉換成表的所有列名,這自然會消耗系統時間。

②在子查詢中,[NOT] IN子句將執行一個內部的排序與合并,無論在那種情況下,[NOT] IN都是最低效的,因為他對子查詢中的表執行了一個全表遍歷。為了提高效率,我們可以把它改寫成外連接、NOT EXISTS 或者 EXISTS 子句。

③驅動表是指被最先訪問的表(通常以全表掃描的方式被訪問)。而一般緊隨FROM其后的表為驅動表,所以我們在表連接時要將有可用索引的表放在FROM后面,這樣可以提高查詢效率。

④創建主鍵和唯一索引的主要目的除了數據的完整性和一致性之外,還具有提高查詢速度的作用。

⑤對于只從總行數中查詢2%~4%的表,可以考慮創建索引。下面是創建索引的基本原則:

(1)以查詢關鍵字為基礎,表中的行隨機排序。

(2)包含的列數相對比較少的表。

(3)表中的大多數查詢都包含相對簡單的WHRER從句。

(4)對于經常以查詢關鍵字為基礎的表,并且該表中的行遵從均勻分布。

(5)緩存命中率低,并且不需要操作系統權限。

⑥避免全表掃描大表,以下情況下Oracle就會使用全表掃描:

(1)所查詢的表沒有索引。

(2)需要返回所有的行。

(3)帶like并使用“%”這樣的語句就是全表掃描。

(4)對索引主列有條件限制,但使用了函數,則Oracle使用全表掃描。

(5)帶有is null、is non null 或!=等字句也導致全表掃描。





向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

朝阳县| 华宁县| 鸡泽县| 临猗县| 泉州市| 晋城| 榕江县| 宜兴市| 内江市| 敦煌市| 竹溪县| 上思县| 沛县| 邢台县| 台江县| 兴安盟| 康乐县| 即墨市| 湾仔区| 甘肃省| 云安县| 雅安市| 舞阳县| 海丰县| 韶山市| 余姚市| 滦南县| 青神县| 监利县| 海兴县| 宝鸡市| 含山县| 鄂温| 荥阳市| 铁岭市| 布尔津县| 安龙县| 清流县| 仁怀市| 化隆| 静乐县|