偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

從優(yōu)化達夢執(zhí)行計劃輸出,談產(chǎn)品交互

原創(chuàng)
數(shù)據(jù)庫
近期,開始嘗試做些國產(chǎn)數(shù)據(jù)庫的評測工作,特別是與SQL相關(guān)的,也輸出幾篇文章。在這一過程中,對國產(chǎn)數(shù)據(jù)庫使用感覺還是存在不小優(yōu)化空間。這里以達夢數(shù)據(jù)庫的執(zhí)行計劃輸出為例,談?wù)勛约簩Ξa(chǎn)品交互優(yōu)化的一些看法。

近期,開始嘗試做些國產(chǎn)數(shù)據(jù)庫的評測工作,特別是與SQL相關(guān)的,也輸出幾篇文章。在這一過程中,對國產(chǎn)數(shù)據(jù)庫使用感覺還是存在不小優(yōu)化空間。這里以達夢數(shù)據(jù)庫的執(zhí)行計劃輸出為例,談?wù)勛约簩Ξa(chǎn)品交互優(yōu)化的一些看法。

1. 達夢數(shù)據(jù)庫計劃輸出及優(yōu)化

(1)達夢執(zhí)行計劃現(xiàn)狀

作為DBA最常用的功能,了解SQL語句的執(zhí)行計劃很重要。達夢數(shù)據(jù)庫可通過多種方式來查看,常用的就是Explain命令。坦白講,第一次看到達夢數(shù)據(jù)庫的執(zhí)行計劃,是讓我感到比較郁悶的,因為它與其他數(shù)據(jù)庫的執(zhí)行計劃還是存在很大差別。如下圖,就是一條簡單的執(zhí)行計劃示例。

當(dāng)看到這一輸出結(jié)果,在不參考文檔的情況下,有很多是不太理解的。

  • 沒有標(biāo)題欄,每部分內(nèi)容不知含義,如方括號中一串?dāng)?shù)字
  • 有操作符部分,但只看名稱部分勉強能猜出來,有的完全猜不出
  • 操作符后面應(yīng)該是每種操作符的參數(shù),操作符不同參數(shù)而已,各參數(shù)還有輸入值等
  • 整體縮進式結(jié)構(gòu),應(yīng)該跟其他數(shù)據(jù)庫類似,可反應(yīng)操作符執(zhí)行順序

達夢也有其他圖形化工具,情況會好一些。如在達夢最近推出的SQLark百靈中,通過分欄顯示清晰了很多,當(dāng)然還是存在不知含義等問題。

于是,只能借助達夢文檔,來回查看操作符含義、參數(shù)含義等等。如下圖是達夢官方提供的執(zhí)行計劃操作文檔,寫的還是挺清楚的。當(dāng)然,往復(fù)切換查看文檔和執(zhí)行計劃的過程還是令人不悅,是不是能有更好的一些方法呢...

(2)達夢執(zhí)行計劃優(yōu)化

有了上面這些問題,自己還是想動手嘗試改變下。近幾年動手少了,趕鴨子上架拿 Python 試著改造下。這里面突出有幾個問題想要優(yōu)化下:一是輸出格式的問題,可能多年受Oracle、MySQL的影響,還是覺得表格形式的比較習(xí)慣;二是對操作符不熟悉,因此最好能一屏顯示執(zhí)行計劃及對應(yīng)操作符的含義,方便上下對照來看;三是執(zhí)行計劃還會受到如統(tǒng)計信息、內(nèi)核參數(shù)等影響,有可能都顯示出來。好了,有了需求可以動手了...

首先,第一個問題就是搞環(huán)境,開始以為很簡單的事。用Docker起了個達夢實例,然后在本地裝Python連達夢庫。之前用cx_Oracle、MySQLdb、PyMySQL連接Oracle、MySQL都是很簡單,但參照達夢官方文檔使用Python連接,遇到了一堆的問題;前后試了一小時,放棄...選擇用比較挫的方式,直接程序中調(diào)用達夢DiSQL命令行工具方式。然后,就是如何將達夢的知識庫(執(zhí)行計劃操作符含義)與程序產(chǎn)生互動。達夢的官方文檔不錯,寫了個簡單的爬蟲將信息導(dǎo)出,存儲在程序中作為元信息使用;剩下就是做些字符串處理,規(guī)格化一下。第三,就是字符終端輸出,這個有點基礎(chǔ)調(diào)用現(xiàn)成包就可以。于是有了下面這個小原型。

調(diào)用后輸出結(jié)果如下:

頭部是一些數(shù)據(jù)庫、用戶、語句信息,中間部分是表格化的執(zhí)行計劃和遇到的操作符及參數(shù)含義說明,后面是語句中使用到的表及索引的統(tǒng)計信息情況,整體感覺舒服了很多。換一個復(fù)雜點的例子。

2. 產(chǎn)品交互優(yōu)化的幾點看法

通過上面優(yōu)化的小例子,其實也反應(yīng)出在產(chǎn)品交互上、功能設(shè)計上值得關(guān)注的幾點。

(1)選擇用戶“最熟悉”方式

了解、熟悉一款產(chǎn)品代價是挺高的,作為基礎(chǔ)軟件的數(shù)據(jù)庫更是如此。如何讓用戶快速了解、上手你的產(chǎn)品是很關(guān)鍵的。曾跟某國產(chǎn)數(shù)據(jù)庫廠商聊天,對方談到自己是可以全方位對標(biāo)某國際大廠數(shù)據(jù)庫的,那么讓用戶快速了解你就很簡單了。我的建議就是列一個表格,將兩個數(shù)據(jù)庫從設(shè)計、開發(fā)、運維等多角度分列出來,然后再細分子項逐一對比。用戶可以從中很快速地了解你的產(chǎn)品能做什么、能做到什么程度。上面是從大的方面來看,那小的方面也是如此。如本文談到的執(zhí)行計劃輸出,就可以以一種人們更為熟悉的方式來交互。例如 Oracle 的執(zhí)行計劃輸出,就給我們立了一個很好的標(biāo)桿,特別是其內(nèi)部包含的豐富信息,可以極大方便 DBA 的日常工作。當(dāng)一名 Oracle DBA 轉(zhuǎn)型時,就感到很舒適,之前的很多積累還可以復(fù)用。

(2)知道用戶“最需要”什么

作為一名產(chǎn)品經(jīng)理,了解用戶最需要什么是基礎(chǔ);但就是這個最基礎(chǔ)的問題,往往沒有得到足夠的關(guān)注。有時產(chǎn)品的很多功能是產(chǎn)品經(jīng)理意淫出來的,而用戶最樸素的基礎(chǔ)想法并沒有得到關(guān)注。這就需要產(chǎn)品經(jīng)理真正是站在客戶的角度、站在用戶一線,才能觀察體會出來。最直接的方式就是當(dāng)一天的“客戶”,使用自己的產(chǎn)品干干一線工作,然后就能理解用戶的吐槽了。近些年我也會參與到不少廠商的評測工作,經(jīng)常會發(fā)現(xiàn)交互性的問題,對方感到很詫異時,我只能苦笑道“沒當(dāng)過DBA吧”。舉個小例子,你了解一款數(shù)據(jù)庫的備份功能,你會考慮哪些問題:物理備份、邏輯備份怎么做?如何做增量備份?如何查看備份集?如何查看備份進度?失敗了怎么辦,等等不一而足。這些都是來自一線工作中會遇到的。上例中,我最需要的就是快速理解操作符含義,通過幫助形式就可以方便理解。

(3)引導(dǎo)用戶“需關(guān)注”什么

除了用戶需要什么之外,作為對產(chǎn)品更為了解的一方,產(chǎn)品還應(yīng)有意識地提供更多更有價值的內(nèi)容,方便用戶對這個功能的理解和使用。用戶初次接觸產(chǎn)品,很難對產(chǎn)品有全面的了解,知道往往都是片面的一些點,如果通過功能構(gòu)建將功能關(guān)聯(lián)起來,讓用戶有意識地去關(guān)注,往往會取的不錯的效果。這相當(dāng)于把一個一個的知識點,連接成一張網(wǎng),讓用戶有了更為全面的理解。如上面例子中,顯示執(zhí)行計劃是用戶的初衷,但其本質(zhì)的需求是理解為什么SQL走了這樣的執(zhí)行計劃,那么可能影響、改變執(zhí)行計劃的因素都應(yīng)該是用戶需要了解的。例如:統(tǒng)計信息是不是完整的?數(shù)據(jù)是不是有傾斜?使用綁定變量了嗎?等等,這些問題都是需要用戶關(guān)注的。

責(zé)任編輯:姜華 來源: 韓鋒頻道
相關(guān)推薦

2011-09-14 17:03:17

數(shù)據(jù)庫執(zhí)行計劃解析

2015-04-22 14:17:45

SQL SERVERMSSQL SERVE緩沖區(qū)

2021-03-17 09:35:51

MySQL數(shù)據(jù)庫explain

2023-09-21 10:55:51

MysqlSQL語句

2021-05-28 10:46:36

MySQL執(zhí)行計劃

2012-02-02 10:07:12

諾基亞交互設(shè)計

2024-09-12 15:16:14

2009-11-13 16:28:02

Oracle生成執(zhí)行計

2022-08-08 08:03:44

MySQL數(shù)據(jù)庫CBO

2014-04-16 14:36:03

2020-05-21 10:02:51

Explain SQL優(yōu)化

2010-04-16 09:27:18

Ocacle執(zhí)行計劃

2022-08-15 15:09:26

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

2009-11-10 16:00:05

Oracle執(zhí)行計劃

2021-09-07 10:43:25

EverDB分布式執(zhí)行

2020-09-15 08:44:57

MySQL慢日志SQL

2021-04-24 12:01:08

MySQL數(shù)據(jù)庫Mysql執(zhí)行計劃

2021-02-20 08:40:19

HiveExplain底層

2009-11-18 17:05:47

捕獲Oracle SQ

2011-08-18 09:19:19

SQL Server的SQL查詢優(yōu)化
點贊
收藏

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