五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

什么是GaussDB分析?

什么是GaussDB分析?

  • GaussDB分析是指對GaussDB的性能瓶頸點(diǎn)進(jìn)行分析、通過系統(tǒng)資源、吞吐量、負(fù)載等因素來幫助定位和分析性能問題,使系統(tǒng)性能達(dá)到可接受的范圍。在這個(gè)分析、調(diào)優(yōu)的過程中需要綜合考慮多方面因素,因此,分析人員應(yīng)對系統(tǒng)軟件架構(gòu)、軟硬件配置、數(shù)據(jù)庫配置參數(shù)、并發(fā)控制、查詢處理和數(shù)據(jù)庫應(yīng)用有廣泛而深刻的理解。

GaussDB分析:查詢最耗性能的SQL

GaussDB分析:查詢最耗性能的SQL

  • GaussDB分析:使用DAS或者gsql連接實(shí)例

    GaussDB系統(tǒng)中有些SQL語句運(yùn)行了很長時(shí)間還沒有結(jié)束,這些語句會(huì)消耗很多的系統(tǒng)性能,請根據(jù)本章內(nèi)容查詢長時(shí)間運(yùn)行的SQL語句,具體操作步驟如下:

  • GaussDB分析:查詢系統(tǒng)中長時(shí)間運(yùn)行的查詢語句


    SELECT current_timestamp - query_start AS runtime, datname, usename, query FROM pg_stat_activity where state != 'idle' ORDER BY 1 desc;


    GaussDB分析查詢后會(huì)按執(zhí)行時(shí)間從長到短順序返回查詢語句列表,第一條結(jié)果就是當(dāng)前系統(tǒng)中執(zhí)行時(shí)間最長的查詢語句。返回結(jié)果中包含了系統(tǒng)調(diào)用的SQL語句和用戶執(zhí)行SQL語句,請根據(jù)實(shí)際找到用戶執(zhí)行時(shí)間長的語句。


    若當(dāng)前系統(tǒng)較為繁忙,可以通過限制current_timestamp - query_start大于某一閾值來查看執(zhí)行時(shí)間超過此閾值的查詢語句。

    SELECT query FROM pg_stat_activity WHERE current_timestamp - query_start > interval '1 days';


  • GaussDB分析:設(shè)置參數(shù)track_activities為on

    當(dāng)此參數(shù)為on時(shí),數(shù)據(jù)庫系統(tǒng)才會(huì)收集當(dāng)前活動(dòng)查詢的運(yùn)行信息。


    SET track_activities = on;


  • GaussDB分析:查看正在運(yùn)行的查詢語句

    GaussDB分析:以查看視圖pg_stat_activity為例:


    SELECT datname, usename, state FROM pg_stat_activity;
    datname | usename | state |
    ----------+---------+--------+
    postgres | omm | idle |
    postgres | omm | active |
    (2 rows)


    如果state字段顯示為idle,則表明此連接處于空閑,等待用戶輸入命令。如果僅需要查看非空閑的查詢語句,則使用如下命令查看:


    SELECT datname, usename, state FROM pg_stat_activity WHERE state != 'idle';


  • GaussDB分析:分析長時(shí)間運(yùn)行的查詢語句狀態(tài)

    若查詢語句處于正常狀態(tài),則等待其執(zhí)行完畢。若查詢語句阻塞,則通過如下命令查看當(dāng)前處于阻塞狀態(tài)的查詢語句:


    SELECT datname, usename, state, query FROM pg_stat_activity WHERE waiting = true;


    GaussDB分析查詢結(jié)果中包含了當(dāng)前被阻塞的查詢語句,該查詢語句所請求的鎖資源可能被其他會(huì)話持有,正在等待持有會(huì)話釋放鎖資源。


    只有當(dāng)查詢阻塞在系統(tǒng)內(nèi)部鎖資源時(shí),waiting字段才顯示為true。盡管等待鎖資源是數(shù)據(jù)庫系統(tǒng)最常見的阻塞行為,但是在某些場景下查詢也會(huì)阻塞在等待其他系統(tǒng)資源上,例如寫文件、定時(shí)器等。但是這種情況的查詢阻塞,不會(huì)在視圖pg_stat_activity中體現(xiàn)。

GaussDB分析:分析作業(yè)是否被阻塞

GaussDB分析:分析作業(yè)是否被阻塞

  • GaussDB分析:查看阻塞的查詢語句及阻塞查詢的表、模式信息


    SELECT w.query as waiting_query,
    w.pid as w_pid,
    w.usename as w_user,
    l.query as locking_query,
    l.pid as l_pid,
    l.usename as l_user,
    t.schemaname || '.' || t.relname as tablename
    from pg_stat_activity w join pg_locks l1 on w.pid = l1.pid
    and not l1.granted join pg_locks l2 on l1.relation = l2.relation
    and l2.granted join pg_stat_activity l on l2.pid = l.pid join pg_stat_user_tables t on l1.relation = t.relid
    where w.waiting;


    該查詢返回線程ID、用戶信息、查詢狀態(tài),以及導(dǎo)致阻塞的表、模式信息。

  • GaussDB分析:使用如下命令結(jié)束相應(yīng)的會(huì)話


    SELECT PG_TERMINATE_BACKEND(139834762094352);


    其中,139834762094352為線程ID。顯示類似如下信息,表示結(jié)束會(huì)話成功。

    PG_TERMINATE_BACKEND
    ----------------------
    t
    (1 row)


    顯示類似如下信息,表示用戶正在嘗試結(jié)束當(dāng)前會(huì)話。

    FATAL: terminating connection due to administrator command
    FATAL: terminating connection due to administrator command


GaussDB分析:分析作業(yè)是否被阻塞

GaussDB分析:分析作業(yè)是否被阻塞

  • GaussDB分析:查看阻塞的查詢語句及阻塞查詢的表、模式信息


    SELECT w.query as waiting_query,
    w.pid as w_pid,
    w.usename as w_user,
    l.query as locking_query,
    l.pid as l_pid,
    l.usename as l_user,
    t.schemaname || '.' || t.relname as tablename
    from pg_stat_activity w join pg_locks l1 on w.pid = l1.pid
    and not l1.granted join pg_locks l2 on l1.relation = l2.relation
    and l2.granted join pg_stat_activity l on l2.pid = l.pid join pg_stat_user_tables t on l1.relation = t.relid
    where w.waiting;


    該查詢返回線程ID、用戶信息、查詢狀態(tài),以及導(dǎo)致阻塞的表、模式信息。

  • GaussDB分析:使用如下命令結(jié)束相應(yīng)的會(huì)話


    SELECT PG_TERMINATE_BACKEND(139834762094352);


    其中,139834762094352為線程ID。顯示類似如下信息,表示結(jié)束會(huì)話成功。

    PG_TERMINATE_BACKEND
    ----------------------
    t
    (1 row)


    顯示類似如下信息,表示用戶正在嘗試結(jié)束當(dāng)前會(huì)話。

    FATAL: terminating connection due to administrator command
    FATAL: terminating connection due to administrator command


GaussDB分析:參數(shù)調(diào)優(yōu)建議

GaussDB分析:參數(shù)調(diào)優(yōu)建議

  • GaussDB分析:參數(shù)查詢

    1、track_stmt_session_slot

    作用:設(shè)置一個(gè)session緩存的最大的全量/慢SQL的數(shù)量。

    影響:緩存的SQL定期會(huì)被寫入到系統(tǒng)表,如果業(yè)務(wù)量很大,超過這個(gè)數(shù)量語句執(zhí)行將不會(huì)被跟蹤,直到落盤線程將緩存語句落盤,留出空閑的空間,但不影響SQL的執(zhí)行。


    2、effective_cache_size

    作用:設(shè)置節(jié)點(diǎn)優(yōu)化器在一次單一的查詢中可用的磁盤緩沖區(qū)的有效大小。設(shè)置這個(gè)參數(shù),還要考慮的共享緩沖區(qū)以及內(nèi)核的磁盤緩沖區(qū)。另外,還要考慮預(yù)計(jì)的在不同表之間的并發(fā)查詢數(shù)目,因?yàn)樗鼈儗⒐蚕砜捎玫目臻g。這個(gè)參數(shù)對分配的共享內(nèi)存大小沒有影響,它也不會(huì)使用內(nèi)核磁盤緩沖,它只用于估算。數(shù)值是用磁盤頁來計(jì)算的,通常每個(gè)頁面是8192字節(jié)。

    取值范圍:整型,1~I(xiàn)NT_MAX,單位為8KB。

    影響:比默認(rèn)值高的數(shù)值可能會(huì)導(dǎo)致使用索引掃描,更低的數(shù)值可能會(huì)導(dǎo)致選擇順序掃描。


    3、enable_stream_operator

    控制優(yōu)化器對stream的使用。當(dāng)該參數(shù)關(guān)閉時(shí),可能會(huì)有大量關(guān)于計(jì)劃不能下推的日志記錄到日志文件中。


    4、log_min_duration_statement

    作用:當(dāng)某條語句的持續(xù)時(shí)間大于或者等于特定的毫秒數(shù)時(shí),記錄每條完成語句的持續(xù)時(shí)間。設(shè)置log_min_duration_statement可以很方便地跟蹤需要優(yōu)化的查詢語句。對于使用擴(kuò)展查詢協(xié)議的客戶端,語法分析、綁定、執(zhí)行每一步所花時(shí)間被獨(dú)立記錄。

    影響:設(shè)置過低的閾值可能影響負(fù)載吞吐,-1表示關(guān)閉此功能。

  • GaussDB分析:審計(jì)參數(shù)

    1、audit_system_object

    作用:該參數(shù)決定是否對數(shù)據(jù)庫對象的CREATE、DROP、ALTER操作進(jìn)行審計(jì)。數(shù)據(jù)庫對象包括DATABASE、USER、schema、TABLE等。通過修改該配置參數(shù)的值,可以只審計(jì)需要的數(shù)據(jù)庫對象的操作,在主備強(qiáng)制選主場景建議。

    影響:不當(dāng)修改該參數(shù)會(huì)導(dǎo)致丟失DDL審計(jì)日志,請?jiān)诳头藛T指導(dǎo)下進(jìn)行修改。


GaussDB優(yōu)質(zhì)文章錦集