成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

優(yōu)化SQL SELECT語句性能的6個簡單技巧

數(shù)據(jù)庫 SQL Server

SELECT語句的性能調(diào)優(yōu)有時是一個非常耗時的任務,在我看來它遵循帕累托原則。20%的努力很可能會給你帶來80%的性能提升,而為了獲得另外20%的性能提升你可能需要花費80%的時間。除非你在金星工作,那里的每一天都等于地球上的243天,否則交付期限很有可能使你沒有足夠的時間來調(diào)優(yōu)SQL查詢。根據(jù)我多年編寫和運行SQL語句的經(jīng)驗,我開始開發(fā)一個檢查列表,當我試圖提高查詢性能時供我參考。在進行查詢計劃和閱讀我使用的數(shù)據(jù)庫文檔之前,我會參考其中的內(nèi)容,數(shù)據(jù)庫文檔有時會很復雜。我的檢查列表絕對說不上全面或科學,它更像是一個保守計算,但我可以說,遵循這些簡單的步驟大部分時間我確實能得到性能提升。檢查列表如下。

檢查索引

在SQL語句的WHERE和JOIN部分中用到的所有字段上,都應該加上索引。進行這個3分鐘SQL性能測試。不管你的成績?nèi)绾危欢ㄒ喿x那些帶有信息的結(jié)果。

限制工作數(shù)據(jù)集的大小

檢查那些SELECT語句中用到的表,看看你是否可以應用WHERE子句進行過濾。一個典型的例子是,當表中只有幾千行記錄時,一個查詢能夠很好地執(zhí)行。但隨著應用程序的成長,查詢慢了下來。解決方案或許非常簡單,限制查詢來查看當前月的數(shù)據(jù)即可。當你的查詢語句帶有子查詢時,注意在子查詢的內(nèi)部語句上使用過濾,而不是在外部語句上。

只選擇你需要的字段額外的字段

通常會增加返回數(shù)據(jù)的紋理,從而導致更多的數(shù)據(jù)被返回到SQL客戶端。另外:

  • 使用帶有報告和分析功能的應用程序時,有時報告性能低是因為報告工具必須對收到的、帶有詳細形式的數(shù)據(jù)做聚合操作。
  • 偶爾查詢也可能運行地足夠快,但你的問題可能是一個網(wǎng)絡(luò)相關(guān)的問題,因為大量的詳細數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到報告服務器。
  • 當使用一個面向列的DBMS時,只有你選擇的列會從磁盤讀取。在你的查詢中包含的列越少,IO開銷就越小。

移除不必要的表

移除不必要的表的原因,和移除查詢語句中不需要的字段的原因一致。編寫SQL語句是一個過程,通常需要大量編寫和測試SQL語句的迭代過程。在開發(fā)過程中,你可能將表添加到查詢中,而這對于SQL代碼返回的數(shù)據(jù)可能不會有任何影響。一旦SQL運行正確,我發(fā)現(xiàn)許多人不會回顧他們的腳本,不會刪除那些對最終的返回數(shù)據(jù)沒有任何影響和作用的表。通過移除與那些不必要表的JOINS操作,你減少了大量數(shù)據(jù)庫必須執(zhí)行的流程。有時,就像移除列一樣,你會發(fā)現(xiàn)你減少的數(shù)據(jù)又通過數(shù)據(jù)庫返回來了。

移除外部連接查詢

這說起來容易做起來難,它取決于改變表的內(nèi)容有多大的影響。一個解決辦法是通過在兩個表的行中放置占位符來刪除OUTER JOINS操作。假設(shè)你有以下的表,它們通過定義OUTER JOINS來確保返回所有的數(shù)據(jù):

 解決辦法是在customer表的行中增加一個占位符,并更新sales表中的所有NULL值到占位符。

 

 

你不只是刪除了對OUTER JOIN操作的依賴,同時標準化了沒有客戶的銷售人員如何表示。其他開發(fā)人員不必編寫額外語句,例如ISNULL(customer_id, “No customer yet”)。 

刪除JOIN和WHERE子句中的計算字段

這是另外一個有時可能說起來容易做起來難的技巧,它取決于你更改表模式的權(quán)限大小。可以將連接語句中用到的計算字段作為一個新字段在表中創(chuàng)建。給出以下SQL語句: 

 在sales表中利用年和月增加一列,可以提高性能。更新后的SQL語句將如下:  

總結(jié)

 

上邊的建議可以歸結(jié)為以下幾點:

  • 檢查索引
  • 在所需要的最小數(shù)據(jù)集上操作
  • 移除不必要的字段和表
  • 移除你JOIN和WHERE子句中的計算操作
責任編輯:龐桂玉 來源: 馬哥Linux運維
相關(guān)推薦

2023-09-25 13:15:50

SQL數(shù)據(jù)庫

2020-03-25 08:00:32

Kubernetes節(jié)點工作

2020-10-15 15:09:27

Seaborn圖表數(shù)據(jù)集

2023-10-23 14:14:10

SQL數(shù)據(jù)庫

2022-02-25 23:46:54

JavaScript網(wǎng)站開發(fā)

2022-10-09 13:36:44

接口性能優(yōu)化

2010-07-02 13:18:01

SQL Server

2024-01-22 13:16:00

接口性能優(yōu)化本地緩存

2018-06-01 09:53:03

數(shù)據(jù)優(yōu)化算法技巧

2024-12-05 09:02:00

Pythonif?

2010-11-11 11:37:22

SQL SELECT語

2009-04-16 16:57:58

DotNetNuke優(yōu)化網(wǎng)站開發(fā)

2024-06-21 08:21:44

2010-09-03 14:39:15

SQLSELECT語句

2023-03-30 09:10:06

SQLSELECTFROM

2021-02-03 10:46:31

SQL數(shù)據(jù)庫技巧

2019-08-21 10:53:29

.NET性能優(yōu)化

2024-08-26 11:50:08

2025-05-12 08:27:25

2024-04-12 08:28:38

優(yōu)化查詢語句PostgreSQL索引
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久99精品久久久久久噜噜 | 毛片久久久 | 国产成人精品一区二区三区在线 | 91精品国产色综合久久 | 色婷婷综合久久久久中文一区二区 | 成年人在线视频 | 三级视频在线观看 | 国产一区不卡 | 二区精品| 欧美激情精品久久久久久变态 | 精品国产乱码久久久久久丨区2区 | 久久与欧美 | 欧美寡妇偷汉性猛交 | 成人激情视频免费在线观看 | 一级片av| 中文字幕成人在线 | 国产成人久久av免费高清密臂 | 蜜桃视频在线观看免费视频网站www | 日韩精品免费在线观看 | 日韩 欧美 二区 | 国产视频久 | 色网站视频 | 99久久久国产精品免费消防器 | 国产成人在线一区二区 | 久久久久国产精品人 | 亚洲a视频 | 97天天干| 少妇久久久久 | 国产精品99久久久久久久久久久久 | 少妇一级淫片免费放播放 | 激情欧美一区二区三区中文字幕 | 午夜爽爽爽男女免费观看影院 | 国产激情视频在线 | 欧美国产一区二区 | 午夜av影院| 亚洲一区二区三区在线视频 | 精品无码久久久久久久动漫 | 欧美xxxx色视频在线观看免费 | 91中文字幕在线 | 懂色av蜜桃av | 羞羞视频网站免费看 |