国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PostgreSQL查詢(xún)慢sql原因和優(yōu)化方案

這篇具有很好參考價(jià)值的文章主要介紹了PostgreSQL查詢(xún)慢sql原因和優(yōu)化方案。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

PostgreSQL sql查詢(xún)慢優(yōu)化方案有一下幾種解決方案:

1.關(guān)閉會(huì)話(huà)

查詢(xún)慢sql的執(zhí)行會(huì)話(huà),關(guān)閉進(jìn)程。

查看數(shù)據(jù)庫(kù)后臺(tái)連接進(jìn)程

SELECT count(*) FROM pg_stat_activity;

SELECT * FROM pg_stat_activity;

查看數(shù)據(jù)庫(kù)后臺(tái)連接進(jìn)程,但是此條SQL不包含當(dāng)前查詢(xún)進(jìn)程

SELECT count(*) FROM pg_stat_activity WHERE NOT pid=pg_backend_pid();

SELECT * FROM pg_stat_activity WHERE NOT pid=pg_backend_pid();

查看當(dāng)前慢SQL,例如查詢(xún)執(zhí)行時(shí)間超過(guò)1秒的SQL

select * from pg_stat_activity where state<>'idle' and now()-query_start > interval '1 s' order by query_start ;?

可以使用pg_terminate_backend()終止連接。您必須是超級(jí)用戶(hù)才能使用此功能。這在所有操作系統(tǒng)上都是相同的。

SELECT
    pg_terminate_backend(pid)
FROM
    pg_stat_activity
WHERE
    -- 不刪除當(dāng)前連接
    pid <> pg_backend_pid()
    -- 不刪除當(dāng)前連接數(shù)據(jù)庫(kù)database_name的連接
    AND datname = 'database_name'
    ;

2.版本升級(jí):

將PostgreSQL版本升級(jí)到最新版本,以實(shí)現(xiàn)更好的性能和功能。

查看服務(wù)器端版本

2.1 查看詳細(xì)信息

SELECT version();

2.2 查看版本信息

SHOW server_version;

2.3 查看數(shù)字版本信息包括小版號(hào)

SHOW server_version_num;

升級(jí)為更高的版本。?

3.優(yōu)化內(nèi)存和緩存

調(diào)整PostgreSQL內(nèi)存設(shè)置,如shared_buffers和effective_cache_size等參數(shù)。

要讓PostgreSQL達(dá)到最佳性能,還要使用像pg_tune這樣的PostgreSQL優(yōu)化工具,可以根據(jù)系統(tǒng)的內(nèi)存大小,I/O和網(wǎng)絡(luò)性能,來(lái)調(diào)整PostgreSQL參數(shù)。例如常用的shared_buffers和effective_cache_size,它們是與訪(fǎng)問(wèn)文件并維護(hù)內(nèi)存緩存有關(guān)的重要參數(shù),可以控制PostgreSQL訪(fǎng)問(wèn)磁盤(pán)文件的頻繁程度。除此之外,還可以根據(jù)測(cè)試結(jié)果做出改變,例如increasing wal_buffers to improve write performance,這有助于將PostgreSQL寫(xiě)入操作提升到最高水平。

最后,正確的PostgreSQL內(nèi)核性能調(diào)優(yōu)優(yōu)化必須包含兩個(gè)要素:PostgreSQL參數(shù)設(shè)置以及服務(wù)器的配置。因此,對(duì)于數(shù)據(jù)庫(kù)管理員或性能調(diào)優(yōu)者而言,正確的性能調(diào)優(yōu)優(yōu)化消耗大量時(shí)間,但它也是實(shí)現(xiàn)PostgreSQL最佳性能的必要之道。

舉例來(lái)說(shuō),想要提升PostgreSQL的性能,可以使用以下代碼:

ALTER SYSTEM SET shared_buffers = '1000MB';

ALTER SYSTEM SET effective_cache_size = '2000MB';

ALTER SYSTEM SET wal_buffers = '12MB';

一般shared_buffers?值應(yīng)該被設(shè)為整個(gè)機(jī)器內(nèi)存的 15% ~ 25%。

effective_cache_size參數(shù)有操作系統(tǒng)和數(shù)據(jù)庫(kù)評(píng)估多少內(nèi)存可用磁盤(pán)緩存,PostgreSQL查詢(xún)計(jì)劃決定它是否固定在RAM中。索引掃描最有可能用于較高的值;如果該值為低將使用順序掃描。建議將effecve_cache_size設(shè)置為機(jī)器總RAM的50%。

wal buffer是預(yù)寫(xiě)日志(wal)緩沖區(qū),緩沖區(qū)的默認(rèn)大小由wal_buffers設(shè)置設(shè)置—最初為16MB。如果要調(diào)優(yōu)的系統(tǒng)有大量并發(fā)連接,那么wal_buffers的值越高,性能越好。

4.合理的索引

建立合理的索引可以極大的提高查詢(xún)性能。

可以使用navicat ,選中數(shù)據(jù)庫(kù),右鍵》》維護(hù)》》重建索引

postgresql 慢sql,數(shù)據(jù)庫(kù)技術(shù),postgresql,sql,數(shù)據(jù)庫(kù)

5.優(yōu)化表設(shè)計(jì)

將表分成有意義的符合邏輯的、盡可能小和彼此獨(dú)立的部分,以減少查詢(xún)中的不必要數(shù)據(jù)量。

6.安裝和使用適當(dāng)?shù)臄U(kuò)展

安裝如pgTune和pgBadger等與PostgreSQL性能優(yōu)化的工具,以及如pg_hint_plan和pg_stat_statements等擴(kuò)展程序。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-644265.html

到了這里,關(guān)于PostgreSQL查詢(xún)慢sql原因和優(yōu)化方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • PostgreSQL性能調(diào)優(yōu):優(yōu)化查詢(xún)和索引設(shè)計(jì)

    PostgreSQL性能調(diào)優(yōu):優(yōu)化查詢(xún)和索引設(shè)計(jì)

    隨著數(shù)據(jù)量的增長(zhǎng)和業(yè)務(wù)需求的變化,數(shù)據(jù)庫(kù)性能成為了許多企業(yè)關(guān)注的焦點(diǎn)之一。在眾多的數(shù)據(jù)庫(kù)管理系統(tǒng)中,PostgreSQL因其穩(wěn)定性和可靠性而備受青睞。然而,即使是最強(qiáng)大的系統(tǒng)也需要合適的調(diào)優(yōu),以確保其能夠高效地處理大規(guī)模數(shù)據(jù)和復(fù)雜查詢(xún)。 本文將介紹如何在P

    2024年02月07日
    瀏覽(22)
  • 【PostgreSQL內(nèi)核學(xué)習(xí)(十)—— 查詢(xún)執(zhí)行(可優(yōu)化語(yǔ)句執(zhí)行)】

    聲明 :本文的部分內(nèi)容參考了他人的文章。在編寫(xiě)過(guò)程中,我們尊重他人的知識(shí)產(chǎn)權(quán)和學(xué)術(shù)成果,力求遵循合理使用原則,并在適用的情況下注明引用來(lái)源。 本文主要參考了《PostgresSQL數(shù)據(jù)庫(kù)內(nèi)核分析》一書(shū) ?? 可優(yōu)化語(yǔ)句 的共同特點(diǎn)是它們 被查詢(xún)編譯器處理后都會(huì)生成

    2024年02月15日
    瀏覽(21)
  • 【數(shù)據(jù)庫(kù)】查詢(xún)PostgreSQL中所有表邏輯外鍵

    在PostgreSQL數(shù)據(jù)庫(kù)中,邏輯外鍵是用于約束表之間關(guān)系的一種機(jī)制。然而,在某些情況下,我們可能需要?jiǎng)h除和重建邏輯外鍵。本文將介紹如何查詢(xún)PostgreSQL中所有表的邏輯外鍵,并指導(dǎo)您如何先刪除再重新建立這些外鍵。 要查詢(xún)PostgreSQL中所有表的邏輯外鍵,您可以使用以下

    2024年02月10日
    瀏覽(32)
  • PostgreSQL MVCC的弊端優(yōu)化方案

    PostgreSQL MVCC的弊端優(yōu)化方案

    我們之前的博客文章“我們最討厭的 PostgreSQL 部分”討論了大家最喜歡的 DBMS 多版本并發(fā)控制 (MVCC) 實(shí)現(xiàn)所帶來(lái)的問(wèn)題。其中包括版本復(fù)制、表膨脹、索引維護(hù)和真空管理。本文將探討針對(duì)每個(gè)問(wèn)題優(yōu)化 PostgreSQL 的方法。 盡管 PostgreSQL 的 MVCC 實(shí)現(xiàn)是 Oracle 和 MySQL 等其他廣泛使

    2024年02月16日
    瀏覽(21)
  • postgresql|數(shù)據(jù)庫(kù)|SQL語(yǔ)句沖突的解決

    postgresql數(shù)據(jù)庫(kù)是比較復(fù)雜的一個(gè)關(guān)系型數(shù)據(jù)庫(kù),而有些時(shí)候,即使是簡(jiǎn)單的插入更新操作也是有很多復(fù)雜的機(jī)制。 那么,什么是沖突?什么時(shí)候會(huì)遇到?jīng)_突(也就是沖突的常見(jiàn)場(chǎng)景)?如果有沖突我們應(yīng)該怎么去解決?這些問(wèn)題我想應(yīng)該是在此文章中詳細(xì)說(shuō)明的。 復(fù)雜點(diǎn)的

    2024年02月06日
    瀏覽(27)
  • PostgreSQL數(shù)據(jù)庫(kù)以任意時(shí)間間隔聚合查詢(xún)group by

    PostgreSQL數(shù)據(jù)庫(kù)以任意時(shí)間間隔聚合查詢(xún)group by

    我們做的是智慧交通信控平臺(tái),需要將實(shí)時(shí)采集到的交通大數(shù)據(jù)(信號(hào)機(jī)燈態(tài)、卡口過(guò)車(chē)、雷達(dá)數(shù)據(jù)等)全部入庫(kù),按照時(shí)間順序存儲(chǔ) 然后根據(jù)原始數(shù)據(jù),再計(jì)算出一些交通評(píng)價(jià)指標(biāo),存儲(chǔ)到數(shù)據(jù)庫(kù),供后續(xù)聚合查詢(xún)和分析統(tǒng)計(jì) 前端設(shè)備(信號(hào)機(jī)、雷達(dá)、卡口等)上報(bào)原始

    2024年02月02日
    瀏覽(93)
  • PostgreSQL修煉之道之?dāng)?shù)據(jù)庫(kù)優(yōu)化(十八)

    PostgreSQL修煉之道之?dāng)?shù)據(jù)庫(kù)優(yōu)化(十八)

    12.1.1 數(shù)據(jù)庫(kù)優(yōu)化準(zhǔn)則 ????????數(shù)據(jù)庫(kù)優(yōu)化的思路有很多種。比較常用的是下面兩種優(yōu)化思路。 第一種思路:有人說(shuō)過(guò),“The fastest way to do something is don\\\'t do it”,意思是說(shuō),“做得最快的方法就是不做”。從這個(gè)思路上來(lái)說(shuō),把一些無(wú)用的步驟或作用不大的步驟去掉就是

    2024年02月10日
    瀏覽(20)
  • 超全mysql轉(zhuǎn)換postgresql數(shù)據(jù)庫(kù)方案

    超全mysql轉(zhuǎn)換postgresql數(shù)據(jù)庫(kù)方案

    寫(xiě)在前文: 近期由于公司業(yè)務(wù)產(chǎn)品發(fā)展需要,要求項(xiàng)目逐漸國(guó)產(chǎn)化:(1)項(xiàng)目國(guó)產(chǎn)操作系統(tǒng)部署;(2)數(shù)據(jù)庫(kù)國(guó)產(chǎn)化;國(guó)產(chǎn)數(shù)據(jù)庫(kù)最終選型為highgo(瀚高),該數(shù)據(jù)庫(kù)基于pg開(kāi)發(fā),所以要求先將mysql適配到postgresql數(shù)據(jù)庫(kù); 1.1.1 鏡像拉取 dockerhub官網(wǎng)選取自己想安裝的版本(

    2024年02月06日
    瀏覽(24)
  • postgresql|數(shù)據(jù)庫(kù)|批量執(zhí)行SQL腳本文件的shell腳本

    postgresql|數(shù)據(jù)庫(kù)|批量執(zhí)行SQL腳本文件的shell腳本

    對(duì)于數(shù)據(jù)庫(kù)的維護(hù)而言,肯定是有SQL腳本的執(zhí)行,例如,某個(gè)項(xiàng)目需要更新,那么,可能會(huì)有很多的SQL腳本需要執(zhí)行,SQL腳本可能會(huì)包含有建表,插入數(shù)據(jù),索引建立,約束建立,主外鍵建立等等內(nèi)容。 那么,幾個(gè)SQL腳本可能無(wú)所謂,navicat或者psql命令行 簡(jiǎn)簡(jiǎn)單單的就導(dǎo)入了

    2024年02月01日
    瀏覽(88)
  • MyBatis-Plus 查詢(xún)PostgreSQL數(shù)據(jù)庫(kù)jsonb類(lèi)型保持原格式

    MyBatis-Plus 查詢(xún)PostgreSQL數(shù)據(jù)庫(kù)jsonb類(lèi)型保持原格式

    在這篇文章,我們保存了數(shù)據(jù)庫(kù)的jsonb類(lèi)型:MyBatis-Plus 實(shí)現(xiàn)PostgreSQL數(shù)據(jù)庫(kù)jsonb類(lèi)型的保存與查詢(xún) 這篇文章介紹了模糊查詢(xún)json/jsonb類(lèi)型:PostgreSQL 查詢(xún)json/jsonb是否存在某個(gè)片段 在模糊查詢(xún)json/jsonb之前,我們得拿到正確的json/jsonb片段,比如我們模糊查詢(xún)好幾個(gè)連著的鍵值對(duì),

    2024年02月15日
    瀏覽(110)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包