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

從優化達夢執行計劃輸出,談產品交互

原創
數據庫
近期,開始嘗試做些國產數據庫的評測工作,特別是與SQL相關的,也輸出幾篇文章。在這一過程中,對國產數據庫使用感覺還是存在不小優化空間。這里以達夢數據庫的執行計劃輸出為例,談談自己對產品交互優化的一些看法。

近期,開始嘗試做些國產數據庫的評測工作,特別是與SQL相關的,也輸出幾篇文章。在這一過程中,對國產數據庫使用感覺還是存在不小優化空間。這里以達夢數據庫的執行計劃輸出為例,談談自己對產品交互優化的一些看法。

1. 達夢數據庫計劃輸出及優化

(1)達夢執行計劃現狀

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

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

  • 沒有標題欄,每部分內容不知含義,如方括號中一串數字
  • 有操作符部分,但只看名稱部分勉強能猜出來,有的完全猜不出
  • 操作符后面應該是每種操作符的參數,操作符不同參數而已,各參數還有輸入值等
  • 整體縮進式結構,應該跟其他數據庫類似,可反應操作符執行順序

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

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

(2)達夢執行計劃優化

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

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

調用后輸出結果如下:

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

2. 產品交互優化的幾點看法

通過上面優化的小例子,其實也反應出在產品交互上、功能設計上值得關注的幾點。

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

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

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

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

(3)引導用戶“需關注”什么

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

責任編輯:姜華 來源: 韓鋒頻道
相關推薦

2011-09-14 17:03:17

數據庫執行計劃解析

2015-04-22 14:17:45

SQL SERVERMSSQL SERVE緩沖區

2021-03-17 09:35:51

MySQL數據庫explain

2023-09-21 10:55:51

MysqlSQL語句

2021-05-28 10:46:36

MySQL執行計劃

2012-02-02 10:07:12

諾基亞交互設計

2022-08-08 08:03:44

MySQL數據庫CBO

2009-11-13 16:28:02

Oracle生成執行計

2024-09-12 15:16:14

2014-04-16 14:36:03

2020-05-21 10:02:51

Explain SQL優化

2010-04-16 09:27:18

Ocacle執行計劃

2020-09-15 08:44:57

MySQL慢日志SQL

2021-04-24 12:01:08

MySQL數據庫Mysql執行計劃

2021-02-20 08:40:19

HiveExplain底層

2009-11-18 17:05:47

捕獲Oracle SQ

2022-08-15 15:09:26

SQL數據庫MySQL

2009-11-10 16:00:05

Oracle執行計劃

2021-09-07 10:43:25

EverDB分布式執行

2011-08-18 09:19:19

SQL Server的SQL查詢優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人久久成人 | 色综合桃花网 | 中文在线一区二区 | 欧美精品一区二区三区在线播放 | 久久777| 欧美高清视频在线观看 | 午夜影视大全 | 国产乱码精品一品二品 | 亚洲精品中文字幕在线观看 | 成人毛片一区二区三区 | 色眯眯视频在线观看 | 欧美久久一级 | 久久高清 | 国产欧美在线 | 国产一在线 | 欧美aaaa视频 | 亚洲人va欧美va人人爽 | 亚洲精品在线视频 | 久草视频在线播放 | 国产精品视频一区二区三区, | 一区二区三区免费观看 | 亚洲精品一区二区 | 久久99国产精品 | 日本久草视频 | 国产精品日产欧美久久久久 | a在线免费观看 | 一区二区三区国产好 | 国产高清在线精品 | 中文字幕国 | 91九色视频在线 | 欧美一区 | 91精品久久久 | 免费成人在线网站 | 视频一区二区在线观看 | 天啪| 天天澡天天狠天天天做 | 免费欧美 | 国产一区二区三区色淫影院 | 一级毛片在线播放 | 国产一区二区在线91 | 99久久精品一区二区毛片吞精 |