99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

SAP HANA高頻短查詢排查:從捕獲請(qǐng)求統(tǒng)計(jì)到PLV執(zhí)行計(jì)劃分析

SAP HANA高頻短查詢排查:從捕獲請(qǐng)求統(tǒng)計(jì)到PLV執(zhí)行計(jì)劃分析 周五下午三點(diǎn)某數(shù)據(jù)平臺(tái)的運(yùn)維群里開(kāi)始有人喊系統(tǒng)卡了。我登錄 SAP HANA 看了一眼CPU 已經(jīng)沖到 85%可昂貴的語(yǔ)句追蹤里一條慢 SQL 都沒(méi)有——單條執(zhí)行都低于 1 秒。這個(gè)場(chǎng)景在 SAP HANA 的故障排查里太典型了真正拖垮系統(tǒng)的往往不是那幾條明顯的慢 SQL而是大量高頻短查詢的累積。要抓住它們得打開(kāi) Capture Request Statistics要讀懂它們?yōu)槭裁绰值冒褕?zhí)行計(jì)劃導(dǎo)成 PLV 文件用 VS Code 打開(kāi)逐節(jié)點(diǎn)分析。這篇文章就把這套完整流程寫(xiě)下來(lái)。1. 為什么默認(rèn)的昂貴語(yǔ)句追蹤抓不住隱形慢 SQL1.1 昂貴語(yǔ)句追蹤的 1 秒閾值陷阱SAP HANA 默認(rèn)并不是什么都不記錄它有一套叫 Expensive Statement Trace 的機(jī)制。這套機(jī)制看名字就知道專(zhuān)門(mén)記錄執(zhí)行得比較貴的語(yǔ)句。問(wèn)題是它有一個(gè)硬性的執(zhí)行時(shí)間閾值在indexserver.ini配置文件的[expensive_statement]段里參數(shù)叫threshold_execution_time默認(rèn)值是 1000000 微秒也就是 1 秒。這意味著什么只有單次執(zhí)行時(shí)間超過(guò) 1 秒的 SQL 才會(huì)被記錄到昂貴語(yǔ)句日志里。很多運(yùn)維同學(xué)排查慢 SQL 時(shí)習(xí)慣先看這個(gè)日志結(jié)果發(fā)現(xiàn)里面空空如也于是得出數(shù)據(jù)庫(kù)沒(méi)有慢 SQL的結(jié)論。但線上業(yè)務(wù)的真實(shí)情況往往是單次 100 毫秒的查詢每秒被調(diào) 500 次一分鐘累計(jì)占用數(shù)據(jù)庫(kù) CPU 的時(shí)間就是 300 秒。單拿出來(lái)哪一條都不夠昂貴標(biāo)準(zhǔn)合在一起卻能把整個(gè)實(shí)例拖垮。這就引出一個(gè)非常關(guān)鍵的觀點(diǎn)慢 SQL 的定義不能只看單次耗時(shí)還要看執(zhí)行頻率和累計(jì)資源消耗。昂貴語(yǔ)句追蹤本質(zhì)上是一個(gè)事后告警工具適合人工抽查不適合做全量畫(huà)像。想看清系統(tǒng)里到底跑了什么需要的是另一套能力——全量請(qǐng)求捕獲。1.2 高頻短查詢?nèi)绾温峡逑到y(tǒng)高頻短查詢的最可怕之處不是每一次執(zhí)行有多重而是它的累積效應(yīng)。舉個(gè)例子一個(gè)查詢單次 50 毫秒執(zhí)行 2000 次總耗時(shí)是 100 秒。這 100 秒里包含了對(duì) CPU 的占用、內(nèi)存的申請(qǐng)釋放、計(jì)劃緩存的查找和更新、結(jié)果集的序列化。如果并發(fā)高還會(huì)放大鎖等待和線程排隊(duì)。更隱蔽的是大量短查詢會(huì)不斷沖擊執(zhí)行計(jì)劃緩存導(dǎo)致真正需要復(fù)用的好計(jì)劃被頻繁換出整體命中率下降讓每條 SQL 的平均編譯開(kāi)銷(xiāo)上升。用戶體感就是系統(tǒng)整體變卡但抓單條 SQL 又抓不到。這類(lèi)問(wèn)題在接口型業(yè)務(wù)里最常見(jiàn)。前端輪詢接口、定時(shí)任務(wù)高頻掃描、報(bào)表工具反復(fù)拉取同一段數(shù)據(jù)都會(huì)產(chǎn)生這種隱形慢 SQL。它們不會(huì)寫(xiě)進(jìn)昂貴語(yǔ)句日志也不會(huì)觸發(fā)告警只會(huì)讓 CPU 慢慢爬升直到某一天高峰期扛不住。1.3 什么場(chǎng)景值得開(kāi)捕獲Capture Request Statistics 的核心價(jià)值在于它把所有經(jīng)過(guò) SQL 引擎的請(qǐng)求都記錄下來(lái)無(wú)論快慢。這樣你拿到的不是幾個(gè)典型樣本而是一段時(shí)間內(nèi)的完整請(qǐng)求畫(huà)像。我一般在三類(lèi)場(chǎng)景下會(huì)主動(dòng)開(kāi)啟捕獲。第一類(lèi)是定期的性能巡檢不需要等出故障先抓一到兩天的全量數(shù)據(jù)做基線第二類(lèi)是系統(tǒng)上線前后的對(duì)比確認(rèn)新功能或新版本有沒(méi)有引入異常的查詢模式第三類(lèi)是說(shuō)不清哪里慢的疑難雜癥沒(méi)有明確慢 SQL但整體 CPU 或響應(yīng)時(shí)間異常這時(shí)候必須靠全量數(shù)據(jù)還原現(xiàn)場(chǎng)。2. 打開(kāi) Capture Request Statistics參數(shù)、落表和性能代價(jià)2.1 三步開(kāi)關(guān)命令、驗(yàn)證與生效范圍打開(kāi) Capture Request Statistics 的操作非常輕量一條 ALTER SYSTEM 語(yǔ)句就能完成。在目標(biāo)租戶庫(kù)執(zhí)行ALTER SYSTEM ALTER CONFIGURATION (indexserver.ini, SYSTEM) SET (sql, capture_request_statistics) true WITH RECONFIGURE;注意幾個(gè)細(xì)節(jié)。第一SYSTEM表示在集群級(jí)別修改配置這個(gè)配置會(huì)廣播到所有 indexserver 節(jié)點(diǎn)在有多節(jié)點(diǎn)、多租戶的架構(gòu)下不需要逐臺(tái)登錄設(shè)置。第二WITH RECONFIGURE必不可少它讓配置立即生效否則只是寫(xiě)入了配置文件要等實(shí)例重啟才生效。第三這個(gè)參數(shù)作用在 indexserver 進(jìn)程上所以要在目標(biāo)租戶庫(kù)執(zhí)行而不是在 SYSTEMDB 里執(zhí)行了事。設(shè)置完成后先確認(rèn)一下生效狀態(tài)SELECT FILE_NAME, SECTION, KEY, VALUE FROM SYS.M_CONFIG WHERE FILE_NAME indexserver.ini AND KEY capture_request_statistics;看到 VALUE 為 true就說(shuō)明開(kāi)關(guān)已經(jīng)生效。此時(shí)系統(tǒng)里的請(qǐng)求會(huì)開(kāi)始往統(tǒng)計(jì)表寫(xiě)入數(shù)據(jù)。2.2 捕獲數(shù)據(jù)落在哪兩張統(tǒng)計(jì)表的關(guān)鍵字段開(kāi)啟捕獲后數(shù)據(jù)落在_SYS_STATISTICS模式下的兩張核心表里。一張是REQUESTS_CAPTURED記錄每一次請(qǐng)求的執(zhí)行概況另一張是STATEMENTS_CAPTURED保存 SQL 語(yǔ)句文本。兩者通過(guò)STATEMENT_KEY字段關(guān)聯(lián)。REQUESTS_CAPTURED里我最常用到的字段有這些字段含義用途START_TIME請(qǐng)求開(kāi)始時(shí)間做時(shí)間段過(guò)濾圈定業(yè)務(wù)高峰期DURATION_MICROSEC請(qǐng)求總耗時(shí)微秒計(jì)算平均耗時(shí)、總耗時(shí)STATEMENT_HASHSQL 文本哈希把相同文本的 SQL 聚合成一類(lèi)STATEMENT_KEY語(yǔ)句唯一鍵關(guān)聯(lián)到 STATEMENTS_CAPTUREDUSER_NAME執(zhí)行用戶過(guò)濾系統(tǒng)請(qǐng)求、定向分析業(yè)務(wù)用戶APPLICATION_NAME應(yīng)用名稱(chēng)定位到具體接口或客戶端TOTAL_CPU_TIME請(qǐng)求消耗的 CPU 時(shí)間看資源消耗比耗時(shí)更直觀這張表是典型的寬表字段很多。實(shí)際做分析時(shí)先抓住執(zhí)行次數(shù)、總耗時(shí)、平均耗時(shí)、CPU 時(shí)間這四類(lèi)就足夠邁出第一步了。2.3 捕獲的代價(jià)采樣與窗口期建議先說(shuō)結(jié)論Capture Request Statistics 有額外開(kāi)銷(xiāo)但通??煽亍C看握?qǐng)求結(jié)束后數(shù)據(jù)庫(kù)需要把統(tǒng)計(jì)信息寫(xiě)入統(tǒng)計(jì)表這個(gè)動(dòng)作本身會(huì)消耗一定 CPU 和 IO。特別是在每秒幾千次短查詢的高并發(fā)場(chǎng)景寫(xiě)入放大效應(yīng)會(huì)比較明顯。所以我不建議把這個(gè)開(kāi)關(guān)常年常開(kāi)更推薦窗口期狩獵的做法。比如設(shè)定 30 分鐘到 2 小時(shí)的捕獲窗口覆蓋業(yè)務(wù)高峰或者做 1 到 2 天的全量捕獲用于季度巡檢。捕獲結(jié)束后立刻關(guān)閉。如果確實(shí)需要長(zhǎng)期監(jiān)控可以研究一下采樣相關(guān)參數(shù)把捕獲比例調(diào)低但那樣會(huì)損失全量數(shù)據(jù)的完整性屬于權(quán)衡方案。我的經(jīng)驗(yàn)是排查性能問(wèn)題不需要 7x24 小時(shí)全量捕獲抓一個(gè)完整的業(yè)務(wù)周期比如一個(gè)工作日下午加一個(gè)早晨高峰已經(jīng)能覆蓋大多數(shù)典型問(wèn)題。3. 從統(tǒng)計(jì)表里撈出真正值得優(yōu)化的 Top SQL3.1 第一刀按 SQL 指紋做總耗時(shí)聚合數(shù)據(jù)抓下來(lái)了直接一條條看肯定不現(xiàn)實(shí)。第一步一定是聚合。按什么維度聚合我建議按STATEMENT_HASH做分組這個(gè)字段相當(dāng)于 SQL 的指紋不同文本但結(jié)構(gòu)相似的語(yǔ)句會(huì)落在不同的哈希上歸并起來(lái)非常干凈。下面這條查詢是整個(gè)過(guò)程的核心建議直接收藏SELECT RC.STATEMENT_HASH, COUNT(*) AS EXECUTION_COUNT, SUM(RC.DURATION_MICROSEC) / 1000000 AS TOTAL_DURATION_SEC, AVG(RC.DURATION_MICROSEC) / 1000 AS AVG_DURATION_MS, MAX(RC.DURATION_MICROSEC) / 1000 AS MAX_DURATION_MS, SUM(RC.TOTAL_CPU_TIME) / 1000000 AS TOTAL_CPU_SEC FROM _SYS_STATISTICS.REQUESTS_CAPTURED RC WHERE RC.START_TIME ADD_SECONDS(CURRENT_UTCTIMESTAMP, -3600) GROUP BY RC.STATEMENT_HASH ORDER BY TOTAL_DURATION_SEC DESC LIMIT 20;為什么排序用 SUM 而不是 MAX這是很多初學(xué)者容易犯的錯(cuò)。MAX只能告訴你最極端的那一次有多慢如果把所有資源都用來(lái)優(yōu)化這一條很可能是在大海撈針而SUM把執(zhí)行次數(shù)和單次耗時(shí)做了乘法直接量化了這條 SQL 在這段時(shí)間內(nèi)總共消耗了多少數(shù)據(jù)庫(kù)時(shí)間。優(yōu)化掉的每一秒都是實(shí)打?qū)嵉南到y(tǒng)吞吐量提升。3.2 第二刀關(guān)聯(lián)出 SQL 文本拿到哈希排名后下一步是把 SQL 文本撈出來(lái)。哈希只是一個(gè)代號(hào)你不知道具體是哪個(gè)查詢。通過(guò)STATEMENT_KEY關(guān)聯(lián)到STATEMENTS_CAPTURED表就能看到完整的語(yǔ)句內(nèi)容SELECT SC.STATEMENT_STRING, RC.STATEMENT_HASH, COUNT(*) AS EXECUTION_COUNT, SUM(RC.DURATION_MICROSEC) / 1000000 AS TOTAL_DURATION_SEC FROM _SYS_STATISTICS.REQUESTS_CAPTURED RC JOIN _SYS_STATISTICS.STATEMENTS_CAPTURED SC ON RC.STATEMENT_KEY SC.STATEMENT_KEY WHERE RC.START_TIME ADD_SECONDS(CURRENT_UTCTIMESTAMP, -3600) GROUP BY RC.STATEMENT_HASH, SC.STATEMENT_STRING ORDER BY TOTAL_DURATION_SEC DESC LIMIT 20;執(zhí)行這條查詢時(shí)我建議多等幾秒因?yàn)榫酆系臄?shù)據(jù)量可能很大。如果同時(shí)抓了多個(gè)節(jié)點(diǎn)的數(shù)據(jù)最終統(tǒng)計(jì)表里是整合后的結(jié)果不需要手動(dòng)合并。拿到 SQL 文本后先肉眼掃一遍 WHERE 條件、JOIN 條件、子查詢結(jié)構(gòu)很多問(wèn)題在這一步已經(jīng)能猜個(gè)七八分。真正的確認(rèn)還得靠執(zhí)行計(jì)劃。3.3 快速通道用 M_EXECUTION_STATISTICS 應(yīng)急看最近請(qǐng)求有一種情況不需要開(kāi) Capture Request Statistics你只想看看最近幾分鐘系統(tǒng)在跑什么比如正在處理一個(gè)實(shí)時(shí)故障。這時(shí)候可以查詢系統(tǒng)視圖SYS.M_EXECUTION_STATISTICS它記錄了最近實(shí)際執(zhí)行過(guò)的請(qǐng)求而且直接帶有STATEMENT_STRING字段連關(guān)聯(lián)都省了。SELECT STATEMENT_STRING, COUNT(*) AS EXECUTION_COUNT, SUM(DURATION_MICROSEC) / 1000000 AS TOTAL_DURATION_SEC, AVG(DURATION_MICROSEC) / 1000 AS AVG_DURATION_MS FROM SYS.M_EXECUTION_STATISTICS WHERE START_TIME ADD_SECONDS(CURRENT_UTCTIMESTAMP, -900) GROUP BY STATEMENT_STRING ORDER BY TOTAL_DURATION_SEC DESC LIMIT 10;但要提醒一句這個(gè)視圖是個(gè)內(nèi)存環(huán)只保留最近一段時(shí)間或最近一部分請(qǐng)求容量有限不適合做歷史分析和完整畫(huà)像。它的定位是應(yīng)急快照用于快速確認(rèn)現(xiàn)在到底在跑什么。真正要寫(xiě)分析報(bào)告、做趨勢(shì)對(duì)比還是得靠 Capture Request Statistics 落表的數(shù)據(jù)。3.4 順手做體檢執(zhí)行次數(shù)、平均耗時(shí)、CPU 占比除了總耗時(shí)排名我通常還會(huì)順手分析三個(gè)維度因?yàn)樗鼈兡芊从巢煌?lèi)型的性能問(wèn)題。執(zhí)行次數(shù)特別高但平均耗時(shí)很低的 SQL往往是接口輪詢或者循環(huán)調(diào)用優(yōu)化思路是緩存結(jié)果、減少調(diào)用次數(shù)或者改批量查詢平均耗時(shí)高但執(zhí)行次數(shù)低的 SQL一般是復(fù)雜報(bào)表或大范圍掃描優(yōu)化思路是加過(guò)濾條件、拆分查詢、優(yōu)化 JOIN 順序CPU 時(shí)間占比異常高的 SQL即使耗時(shí)不高也可能是大量運(yùn)算、函數(shù)處理或類(lèi)型轉(zhuǎn)換導(dǎo)致的這類(lèi)問(wèn)題會(huì)在 CPU 掛高時(shí)特別明顯。這三個(gè)維度的分析不需要額外查詢上面的聚合 SQL 已經(jīng)包含了相關(guān)字段只需要改變排序和觀察角度。4. 把執(zhí)行計(jì)劃導(dǎo)出 .plv用 VS Code 打開(kāi)4.1 統(tǒng)計(jì)回答是誰(shuí)執(zhí)行計(jì)劃回答為什么前面做的所有工作都是在回答一個(gè)問(wèn)題系統(tǒng)里哪些 SQL 消耗最大。這是一個(gè)定位的過(guò)程。但要真正解決問(wèn)題必須回答下一個(gè)問(wèn)題這些 SQL 為什么慢是表掃描走了全表是 JOIN 順序有問(wèn)題還是 WHERE 條件里的函數(shù)導(dǎo)致索引失效回答為什么靠執(zhí)行計(jì)劃。SAP HANA 的執(zhí)行計(jì)劃可視化文件就是 PLV全稱(chēng) Plan Visualization。它把優(yōu)化器生成的算子樹(shù)轉(zhuǎn)換成圖形界面每個(gè)節(jié)點(diǎn)展示算子類(lèi)型、消耗時(shí)間、處理行數(shù)、具體屬性。對(duì)于熟悉節(jié)點(diǎn)閱讀的人來(lái)說(shuō)一張 PLV 比幾千行日志都直觀。4.2 產(chǎn)出一條 .plv 的兩種常見(jiàn)方法第一條路徑是在 SQL 控制臺(tái)里用EXPLAIN PLAN語(yǔ)句直接生成執(zhí)行計(jì)劃。比如EXPLAIN PLAN FOR SELECT ORDER_ID, CUSTOMER_NAME, TOTAL_AMOUNT FROM ORDER_HEADER WHERE ORDER_DATE 2024-01-01 AND ORDER_DATE 2024-02-01;執(zhí)行后控制臺(tái)會(huì)返回一個(gè)結(jié)果集里面按層級(jí)列出了算子樹(shù)。在 SAP HANA 的 Database Explorer 里可以在這個(gè)結(jié)果面板上找到導(dǎo)出計(jì)劃或Visualize Plan之類(lèi)的按鈕把計(jì)劃保存成.plv文件。第二條路徑更直接在 Database Explorer 里打開(kāi)某條 SQL 語(yǔ)句的執(zhí)行歷史找到具體某一次執(zhí)行直接下載對(duì)應(yīng)的執(zhí)行計(jì)劃文件。這種方式拿到的通常是那份實(shí)際執(zhí)行過(guò)的計(jì)劃包含真實(shí)行數(shù)和耗時(shí)比純估算計(jì)劃更有診斷價(jià)值。需要特別注意一個(gè)坑EXPLAIN PLAN FOR生成的是優(yōu)化器估算的計(jì)劃反映的是數(shù)據(jù)庫(kù)認(rèn)為應(yīng)該怎么執(zhí)行而不是實(shí)際上怎么執(zhí)行。在統(tǒng)計(jì)信息不準(zhǔn)確或查詢過(guò)于復(fù)雜時(shí)估算計(jì)劃和實(shí)際計(jì)劃可能差別很大。定位問(wèn)題時(shí)優(yōu)先使用實(shí)際執(zhí)行計(jì)劃。4.3 VS Code 環(huán)境與擴(kuò)展配置拿到 .plv 文件后用文本編輯器打開(kāi)只能看到一堆 JSON真正舒服的打開(kāi)方式是使用可視化渲染工具。VS Code 里可以直接做到這一點(diǎn)。先在擴(kuò)展市場(chǎng)搜索并安裝 SAP 官方提供的 SAP HANA Database Explorer 擴(kuò)展。安裝完成后VS Code 會(huì)把.plv文件關(guān)聯(lián)到該擴(kuò)展的執(zhí)行計(jì)劃可視化視圖。直接點(diǎn)擊文件名打開(kāi)就能看到圖形化的算子樹(shù)。如果擴(kuò)展裝好了雙擊還是顯示 JSON不需要卸載重裝右鍵點(diǎn)擊文件選擇 Open With然后手動(dòng)選擇 SAP HANA 相關(guān)的執(zhí)行計(jì)劃查看器即可。這種手動(dòng)關(guān)聯(lián)在第一次使用時(shí)很常見(jiàn)。4.4 打開(kāi)失敗和渲染異常的排查邏輯沒(méi)有擴(kuò)展時(shí)的表現(xiàn)最直接文件會(huì)以純文本 JSON 打開(kāi)一眼就能識(shí)別。有擴(kuò)展但打不開(kāi)可分為三種情況。第一文件后綴不是.plv可能是.json或.txt需要右鍵手動(dòng)關(guān)聯(lián)第二文件內(nèi)容不完整比如從控制臺(tái)復(fù)制時(shí)只復(fù)制了一部分 JSON這種情況需要重新導(dǎo)出完整文件第三版本兼容性問(wèn)題數(shù)據(jù)庫(kù)版本和 VS Code 擴(kuò)展版本跨度太大時(shí)某些節(jié)點(diǎn)屬性可能顯示不全但通常不會(huì)完全打不開(kāi)。一個(gè)比較實(shí)用的兜底方案如果 VS Code 的環(huán)境一直配置不好可以把 .plv 文件直接拖入 SAP HANA Database Explorer 的網(wǎng)頁(yè)版網(wǎng)頁(yè)版同樣內(nèi)置了 PlanViz 渲染器功能不輸 VS Code。5. 讀懂一張 PLV五個(gè)必須看的抓手5.1 先看算子樹(shù)從根到葉子的閱讀順序打開(kāi)一張 PLV第一眼看到的是縱向或橫向的算子樹(shù)。根節(jié)點(diǎn)在最上端或最左端葉子節(jié)點(diǎn)在底部或最右端數(shù)據(jù)從葉子往根方向流動(dòng)。每一層節(jié)點(diǎn)都代表一個(gè)具體的操作全表掃描、索引查找、JOIN、聚合、排序、投影等等。我最先看的是根節(jié)點(diǎn)??偤臅r(shí)就放在那里它旁邊的耗時(shí)條通常很夸張。如果根節(jié)點(diǎn)顯示 85% 的耗時(shí)都來(lái)自底下某個(gè)子樹(shù)那問(wèn)題就不需要繼續(xù)猜了——所有注意力都應(yīng)該投到那個(gè)子樹(shù)里去。這個(gè)閱讀順序看起來(lái)簡(jiǎn)單但很多人在 PLV 里迷路的唯一原因就是從葉子開(kāi)始看結(jié)果被一堆細(xì)枝末節(jié)的操作帶偏。正確做法永遠(yuǎn)是先看根再看最耗時(shí)的分支最后才收縮到具體算子。5.2 行數(shù)估算值和實(shí)際值相差一個(gè)數(shù)量級(jí)就要警惕PLV 里每個(gè)節(jié)點(diǎn)都標(biāo)注了行數(shù)。這可能是整張計(jì)劃里最有價(jià)值的數(shù)據(jù)??吹臅r(shí)候要區(qū)分兩種行數(shù)估算行數(shù)Estimated Rows和實(shí)際行數(shù)Actual Rows。估算行數(shù)是優(yōu)化器基于統(tǒng)計(jì)信息推算出來(lái)的實(shí)際行數(shù)是查詢真正處理的數(shù)據(jù)量。當(dāng)兩者非常接近時(shí)說(shuō)明優(yōu)化器的判斷靠譜執(zhí)行計(jì)劃整體可信當(dāng)兩者相差超過(guò)一個(gè)數(shù)量級(jí)時(shí)說(shuō)明統(tǒng)計(jì)信息已經(jīng)過(guò)期、直方圖不準(zhǔn)確或者存在復(fù)雜表達(dá)式讓優(yōu)化器無(wú)法準(zhǔn)確估算。這種偏差是性能問(wèn)題的溫床可能直接導(dǎo)致優(yōu)化器選擇了錯(cuò)誤的 JOIN 順序或掃描方式。在實(shí)際計(jì)劃里發(fā)現(xiàn)這類(lèi)偏差下一步就是刷新相關(guān)表的統(tǒng)計(jì)信息比如執(zhí)行ANALYZE相關(guān)操作然后再對(duì)比新計(jì)劃。很多莫名其妙慢的查詢刷新統(tǒng)計(jì)信息后自動(dòng)就好了。5.3 三類(lèi)重點(diǎn)算子掃描、Join、聚合算子種類(lèi)很多但性能診斷中需要聚焦的其實(shí)只有三類(lèi)。第一類(lèi)是 TABLE SCAN??吹揭粋€(gè)大的 TABLE SCAN 節(jié)點(diǎn)時(shí)要立刻確認(rèn)表是列存還是行存過(guò)濾條件下推到了哪一層以及有沒(méi)有做分區(qū)裁剪。最壞的情況是整張幾億行的列存表從頭掃到尾那基本等于把查詢速度的下限拉滿了。第二類(lèi)是 JOIN。看 JOIN 類(lèi)型是 HASH JOIN 還是 NESTED LOOP JOIN然后看驅(qū)動(dòng)表是哪一邊。通常驅(qū)動(dòng)表應(yīng)該選小表或過(guò)濾后數(shù)據(jù)量小的一方如果順序反了耗時(shí)會(huì)成倍增長(zhǎng)。還要確認(rèn) JOIN 條件是否完備缺了條件的笛卡爾積是性能殺手這是新手最容易踩的坑。第三類(lèi)是聚合和排序。GROUP BY 的字段數(shù)量直接影響分組開(kāi)銷(xiāo)字段越少越快排序操作如果出現(xiàn)在大數(shù)據(jù)量節(jié)點(diǎn)上會(huì)消耗大量?jī)?nèi)存和臨時(shí)空間。三類(lèi)算子可以整理成一張自查表分析任何執(zhí)行計(jì)劃時(shí)都可以對(duì)著過(guò)一遍算子類(lèi)型關(guān)注點(diǎn)常見(jiàn)性能問(wèn)題TABLE SCAN列存/行存、過(guò)濾下推、分區(qū)裁剪全表掃描、謂詞未下推JOINJOIN 類(lèi)型、驅(qū)動(dòng)表順序、條件完備笛卡爾積、驅(qū)動(dòng)表過(guò)大AGGREGATION / SORTGROUP BY 字段數(shù)量、排序數(shù)據(jù)量分組鍵過(guò)多、內(nèi)存溢出5.4 謂詞下推、分區(qū)裁剪和隱式轉(zhuǎn)換這三個(gè)概念聽(tīng)起來(lái)抽象但它們的共同點(diǎn)是決定了掃描階段到底碰了多少數(shù)據(jù)這是查詢性能的根基。謂詞下推就是 WHERE 條件里的過(guò)濾動(dòng)作能不能提前發(fā)生。理想情況下過(guò)濾應(yīng)該在掃描葉子節(jié)點(diǎn)時(shí)就把大部分行擋掉而不是把大量數(shù)據(jù)一路傳到上層再過(guò)濾。在 PLV 里如果發(fā)現(xiàn)一個(gè)很大的過(guò)濾條件出現(xiàn)在樹(shù)的上層節(jié)點(diǎn)而不是緊貼著掃描節(jié)點(diǎn)就說(shuō)明下推失敗要對(duì)執(zhí)行計(jì)劃做進(jìn)一步分析。分區(qū)裁剪更直白如果表按日期分區(qū)WHERE 里指定了日期范圍執(zhí)行計(jì)劃應(yīng)該只掃描對(duì)應(yīng)分區(qū)。如果 PLV 顯示掃描了全部分區(qū)說(shuō)明分區(qū)鍵沒(méi)有被有效利用。隱式轉(zhuǎn)換是導(dǎo)致前兩個(gè)問(wèn)題失效的元兇。最典型的表現(xiàn)是 WHERE 條件里對(duì)索引列或分區(qū)列套上了函數(shù)或者字段類(lèi)型不匹配導(dǎo)致數(shù)據(jù)庫(kù)悄悄做了類(lèi)型轉(zhuǎn)換。比如WHERE TO_CHAR(ORDER_DATE) 2024-01-15這會(huì)讓數(shù)據(jù)庫(kù)放棄日期分區(qū)裁剪和索引掃描老老實(shí)實(shí)全表掃描。這一類(lèi)問(wèn)題在 PLV 上往往不是一眼能看到的名字而是掃描節(jié)點(diǎn)行數(shù)異常偏大這個(gè)現(xiàn)象。6. 一個(gè)真實(shí)案例高頻短查詢的完整排查鏈路6.1 現(xiàn)象每天下午三點(diǎn)準(zhǔn)時(shí)變慢接手過(guò)一個(gè)某數(shù)據(jù)平臺(tái)的性能問(wèn)題現(xiàn)象非常規(guī)律每天下午三點(diǎn)半左右系統(tǒng)開(kāi)始變慢持續(xù)大約四十分鐘其他時(shí)段一切正常。初期的排查方向集中在后臺(tái)批處理上因?yàn)榕R近下班時(shí)間通常有匯總?cè)蝿?wù)在跑。但從應(yīng)用監(jiān)控來(lái)看批處理按時(shí)啟動(dòng)了數(shù)據(jù)庫(kù)的昂貴語(yǔ)句日志里也沒(méi)有任何超過(guò) 1 秒的查詢監(jiān)控面板上一片祥和用戶卻切切實(shí)實(shí)在報(bào)卡頓。這個(gè)矛盾點(diǎn)正是我前面提到的隱形慢 SQL的典型特征。當(dāng)時(shí)決定不再猜了直接開(kāi) Capture Request Statistics 做全量捕獲。開(kāi)關(guān)在三點(diǎn)前打開(kāi)持續(xù)了一個(gè)半小時(shí)捕獲了一整個(gè)異常時(shí)段。6.2 捕獲數(shù)據(jù)給出的第一輪證據(jù)捕獲結(jié)束后用前面那套聚合查詢把數(shù)據(jù)拉出來(lái)結(jié)果完全出乎意料。Top 排名前四的 SQL 全是 SELECT 語(yǔ)句分別來(lái)自同一個(gè)訂單查詢接口總執(zhí)行次數(shù)驚人——四類(lèi)語(yǔ)句加起來(lái)在 90 分鐘內(nèi)執(zhí)行了近 2 萬(wàn)次平均單次 80 毫秒左右。單看單次耗時(shí)完全不差但累計(jì)總耗時(shí)排到了整個(gè)系統(tǒng)第一位。順著應(yīng)用名追過(guò)去發(fā)現(xiàn)這個(gè)接口被前端頁(yè)面設(shè)置成了每 3 秒輪詢一次而且一個(gè)頁(yè)面同時(shí)會(huì)觸發(fā)多張報(bào)表卡片每張卡片都調(diào)這個(gè)接口。輪詢頻率高本身沒(méi)問(wèn)題問(wèn)題在于這四類(lèi)查詢內(nèi)部都藏著同一個(gè)性能隱患——它們對(duì)訂單主表的掃描方式非常低效幾億行的列存表每次查詢都從最近的分區(qū)開(kāi)始掃。6.3 PLV 揭示的根因函數(shù)包裹索引列把其中耗時(shí)最高的一條 SQL 導(dǎo)出執(zhí)行計(jì)劃在 VS Code 里打開(kāi) PLV。算子樹(shù)一眼看過(guò)去葉子節(jié)點(diǎn)是一個(gè)巨大的 TABLE SCAN掃描行數(shù)幾乎是全表量級(jí)而根節(jié)點(diǎn)耗時(shí)占比高達(dá) 70%。過(guò)濾條件確實(shí)存在但它對(duì)一個(gè)時(shí)間字段做了格式化處理寫(xiě)成了形如TO_CHAR(ORDER_DATE, YYYY-MM-DD) 2024-06-01的條件。這正是典型的隱式轉(zhuǎn)換問(wèn)題。時(shí)間字段是分區(qū)鍵理論上只需要掃一個(gè)分區(qū)但函數(shù)包裹讓優(yōu)化器無(wú)法把等值條件轉(zhuǎn)換成范圍掃描最終選擇了掃描大量分區(qū)甚至全表。類(lèi)似的問(wèn)題還有把字符型字段轉(zhuǎn)成數(shù)值型再比較同樣會(huì)讓索引失效。讀 PLV 到這里根因已經(jīng)非常清楚了。SQL 本身邏輯沒(méi)問(wèn)題是寫(xiě)法沒(méi)有尊重字段的原始類(lèi)型等于親手把優(yōu)化器的手腳綁住了。6.4 改寫(xiě) SQL 之后的效果對(duì)比修復(fù)方式是重寫(xiě) WHERE 條件把函數(shù)移到等號(hào)右側(cè)變成對(duì)常量做處理-- 優(yōu)化前 WHERE TO_CHAR(ORDER_DATE, YYYY-MM-DD) 2024-06-01 -- 優(yōu)化后 WHERE ORDER_DATE TO_TIMESTAMP(2024-06-01 00:00:00) AND ORDER_DATE TO_TIMESTAMP(2024-06-02 00:00:00)改完再看執(zhí)行計(jì)劃葉子節(jié)點(diǎn)的掃描行數(shù)直接下降到原來(lái)的幾十分之一分區(qū)裁剪生效了。對(duì)比捕獲數(shù)據(jù)同一接口查詢的平均耗時(shí)從 80 毫秒降到 9 毫秒由于執(zhí)行次數(shù)不變?cè)摃r(shí)段的總耗時(shí)下降了接近 90%。三天后觀察 CPU 趨勢(shì)下午三點(diǎn)半的峰值完全消失。事后復(fù)盤(pán)給我的啟示是很多高頻短查詢的優(yōu)化收益被嚴(yán)重低估。一條查詢優(yōu)化掉 70 毫秒聽(tīng)起來(lái)不刺激但乘上每小時(shí)幾千次的執(zhí)行頻率就是肉眼可見(jiàn)的 CPU 資源釋放。7. 捕獲與診斷中容易踩的坑7.1 坑一開(kāi)關(guān)開(kāi)了就不關(guān)統(tǒng)計(jì)表瘋漲Capture Request Statistics 一旦開(kāi)啟統(tǒng)計(jì)表的數(shù)據(jù)量增長(zhǎng)很快。高并發(fā)場(chǎng)景下一小時(shí)就可能寫(xiě)入幾十萬(wàn)條記錄長(zhǎng)期不關(guān)會(huì)導(dǎo)致_SYS_STATISTICS模式下的表膨脹反過(guò)來(lái)影響系統(tǒng)性能。我的做法是把開(kāi)啟操作和關(guān)閉操作寫(xiě)在同一條運(yùn)維記錄里并且給捕獲窗口設(shè)置一個(gè)明確的結(jié)束時(shí)間。比如在操作備注里寫(xiě)15:00 開(kāi)啟預(yù)計(jì) 17:00 關(guān)閉。如果確實(shí)需要長(zhǎng)時(shí)間分析也要規(guī)劃定期清理統(tǒng)計(jì)表的策略避免磁盤(pán)和內(nèi)存被歷史數(shù)據(jù)占滿。7.2 坑二排名只看 MAX漏掉高累計(jì)消耗分析捕獲數(shù)據(jù)時(shí)如果只按 MAX 排序會(huì)把注意力引向那些偶爾慢一次的查詢比如月末跑批、定時(shí)報(bào)表。真正持續(xù)消耗系統(tǒng)資源的往往藏在 SUM 排名的前列。這兩種查詢的優(yōu)化價(jià)值完全不同。單次 2 秒、每天跑 5 次的報(bào)表查詢優(yōu)化到 1 秒每天省 5 秒單次 50 毫秒、每分鐘跑 200 次的接口查詢優(yōu)化到 25 毫秒每分鐘省 5 秒一天下來(lái)節(jié)省的時(shí)間是前者的幾十倍。所以不管看哪份報(bào)告我都習(xí)慣把 SUM 作為第一排序字段MAX 只作為參考。7.3 坑三把 EXPLAIN PLAN 的估算計(jì)劃當(dāng)成實(shí)際表現(xiàn)EXPLAIN PLAN輸出的是優(yōu)化器認(rèn)為應(yīng)該怎么跑的計(jì)劃屬于預(yù)演性質(zhì)實(shí)際執(zhí)行時(shí)因?yàn)閿?shù)據(jù)分布、內(nèi)存、并發(fā)等因素計(jì)劃可能完全變樣。我曾經(jīng)犯過(guò)這個(gè)錯(cuò)誤優(yōu)化好一條 SQLEXPLAIN PLAN 看起來(lái)非常完美但上線后性能沒(méi)有提升一查實(shí)際執(zhí)行計(jì)劃優(yōu)化器運(yùn)行時(shí)選擇了另一條低效的路徑。原因是對(duì)某張大表的統(tǒng)計(jì)信息嚴(yán)重過(guò)期優(yōu)化器在真實(shí)環(huán)境中重新評(píng)估后放棄了預(yù)演時(shí)選定的 JOIN 順序。所以驗(yàn)證優(yōu)化效果時(shí)不要停留在 EXPLAIN PLAN 層面最好拿到實(shí)際執(zhí)行計(jì)劃對(duì)比或者直接觀察捕獲數(shù)據(jù)中該 SQL 的真實(shí)耗時(shí)變化。PLV 文件如果來(lái)自實(shí)際執(zhí)行會(huì)標(biāo)注實(shí)際行數(shù)和耗時(shí)可靠性遠(yuǎn)高于純估算計(jì)劃。7.4 我的習(xí)慣把捕獲做成季度巡檢的一部分這套方法我并不僅用于應(yīng)急排查更多時(shí)候用于例行巡檢。每季度挑一個(gè)業(yè)務(wù)周期開(kāi)啟一到兩天捕獲把 Top SQL 清單導(dǎo)出來(lái)存檔再和上一輪的結(jié)果對(duì)比。哪些新查詢進(jìn)入了 Top哪些舊查詢的耗時(shí)在下滑哪些查詢的執(zhí)行次數(shù)在悄悄上漲都一目了然。這個(gè)習(xí)慣幫我在故障發(fā)生前發(fā)現(xiàn)過(guò)不少隱患。比如某條老查詢本來(lái)平均 20 毫秒連續(xù)兩個(gè)季度慢慢漲到了 120 毫秒單次不慢總量卻翻了好幾倍順著統(tǒng)計(jì)表一查原來(lái)是底層表數(shù)據(jù)量膨脹現(xiàn)有索引選擇性變差。如果等到用戶報(bào)障再查可能已經(jīng)是高峰期扛不住的臨界點(diǎn)。我自己最深的體會(huì)是診斷 SAP HANA 性能問(wèn)題Capture Request Statistics 和 PLV 是一對(duì)組合拳前者負(fù)責(zé)把真兇從海量請(qǐng)求里撈出來(lái)后者負(fù)責(zé)把犯罪動(dòng)機(jī)從算子樹(shù)里挖出來(lái)。缺了第一步你只是在瞎猜缺了第二步你知道是誰(shuí)卻不知道怎么改。按這套流程走下來(lái)大多數(shù)性能問(wèn)題都能在半小時(shí)內(nèi)給出明確結(jié)論。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
激情五月婷在线精品| 五月天综合网| 操操操操操操婷婷五月天| 99色区| 色综合播放| 98毛片| 思思热国产视频| 91热er| 久久婷婷丁香六月天| 玖玖热视频| 青青草轻轻操| 中文字幕日产A片在线看| 狠狠爱深色婷婷综合| 99热很操老逼| 亚洲精品乱码久久久久久综合| 亚洲精品久久久久久久久久吃药| 久久色天堂| 婷婷久久五月| 青青草99热久久精品国| 午夜 外网 精品 在线| 99色热视频| 久久久久人妻精选| 日韩啪啪视频| 五月天色色色色色| 天天日日天天| 日日干天天射| 久久久高清| 一区操| 五月天综合久久| 99热只有精品在线播放| 色五月婷婷五月| 在线另类视频| av五月天婷婷丁香| 精品视频99看在线视频| 99狠狠| 夫妇交换刺激做爰| 9久久精品| 色色 9| 5月丁香啪啪啪| 99视频在线9| 99热国内精品| 九九热在线视频观看| 婷婷激情四射| 五月婷婷六月丁香首页| 1010日日无码| 嫩草AV久久伊人妇女超级A| 涩 五月 婷婷 狠狠| 思思99热在线| 亚洲综合视频在线| 色婷婷综合电影| 人人干天天舔| 欧美久久婷婷| 久热9热| 天天日日人| 久久免费精彩视频| 午夜天堂一区人妻| 久久婷婷六月| 九九热超碰| 狠狠色狠狠色综合日日91| 天天操天天爱天天日| 五月丁香婷婷基地| 色婷婷狠狠久久综合五月| 婷婷色婷婷亚洲成人| 啄木鸟丝袜美女福利视频 | 久热这里只有精品3| 狠狠插日日干撸| 综合色播| 丁香五月婷婷深爱综合激情| 久久免费操| 五月综合激情久久| 六月丁香婷婷网| 青青草tp| 日本高清久| Www.激情| 亚洲不卡123| 丁香久久AV| 91se在线视频| 超碰AV成人| 夜夜操激情| 无码人妻少妇色欲AV一区二区| 91操在线视频| 久久久www| 五月天色欧美| 狠狠干在线| 97夫妻超碰| 五月婷婷六月丁香激情深爱| 精品人妻一区二区三区四区不卡在| 五月婷婷狠狠久久| nvrentiantang av| 久久婷婷亚洲无码一起| 丁香五月婷婷av| 丁香五月婷婷少妇| 婷婷丁香五月天亚洲| 久久激情网| 丁香五月婷婷激情尤物| 激情综合色婷婷啪啪六月天| 强奸幻女毛片| 欧美激情综合五月色丁香| 中国女人内射6XXXXX| 99 热| 另类激情综合| 五月天无码| 色色五月天激情| 色www.con| 色天五月天在线观看视频| avh片在线观看| www.五月婷婷久久.com| 九九爱激情| 欧美毛片www| 亚洲精品一区中文字幕乱码| 国产丁香五月天婷婷| 极品人妻VIDEOSSS人妻| 色五月婷婷开心| 丁香五月激情网| 天天综合亚洲综合网天天αⅴ| 99精品在线| PORNY九色9l自拍视频成人| 色综合久久88色综合天天99| 九热视频在线伦| 五月花婷婷丁香| 天天干在线播放| 婷婷激情五月综合丁| 色视频色综合91| 亚州日本欧州韩美高青高潮一| 日日影院 | 亚洲艹网| 这里只有精品96| 丁香5月婷婷| 七月丁香婷婷 色色| 五月天色裸体视频| 久久综合色五月| 天堂五月婷婷| 亚洲国产精品成人免费一区久久久在线观看AAAA | 五月丁香影视| 97热超碰| AV在线观看网站| 99综合在线| 丁香六月激情综合| 狠狠色狠狠色综合日日91| 天堂婷婷综合| 98永久精品| 久热 91| 99久久99久久综合| 六月丁香激情最新更新| 久久女人九九| 91久热| 国产永久一二一起草| 中文字幕精品无码一区二区| 丁香色婷婷五月天| 免费黄色片子| 狠狠色 综合色区| 久热视频这里只有精品| 精品亚洲国产成AV人片传媒| SS丁香五月婷婷| 麻豆忘忧草午夜| 五月婷婷草| 婷婷中文在线| 538在线精品| 六月婷婷七月丁香| 91干在线| 99热在线观看| 操操天堂| 激情亚洲婷婷六月| 国产精品社区| 成人国产欧美大片一区| 狠狠色噜噜狠狠狠狠综合| 中文字幕婷婷| 五月天婷婷黄色| 成人短视频免费| 色婷婷小说| 欧美激情-区二区三区| 丁香成人五月天| 操操啪| 日本黄色三级片内射| 色五月丁香五月| 婷婷啪啪| 免费观看高清无码| 色综合区| 日韩av干| 99热这里都是精品| 亚洲99精品九九在线| 色欲五月婷婷| 色五月丁香在线| 超碰色女人| 九九黄色网| 色色色色色网站| 大香蕉婷婷丁香视频在线| 免费观看全黄做爰的视频| 99综合视频| 五月丁香激情五月天| 97超喷视频在线观看| 九九热黄色| 六月婷婷网站| 综合狠狠伊人| 狠狠干综合网| 久久黄色片| 色情成人五月天| 天天日天天狠狠操| 五月丁香六月成人| 久久久久久久久久久久久久久久久精典| 九九热欧美| 色综合综合网| 99热欧| 1024婷婷综合久久五月天| 免费黄网不卡AV| 婷婷中文在线| 狠狠摸狠狠摸| 26uuu另类亚洲欧美日本一| 91九色精品熟女内射| 久久性都花花世界成人免费视频| 天天做天天爱天天高潮| 9热视频在线观看| 五月婷婷手机在线| 久久99热这里| 五月天社区| www.爱婷婷.com| 一二线视频 另类| 五月丁香亚洲综合| 91操片| 日本婷婷色日| 久久人妻伦理| 中文乱子伦视频| 婷婷五月激情基地| 丁香五月六月久久综合| 国产91视频| 1024久婷| 亚洲99热| 婷婷伊人久久无码色五月| 国产精品久久..4399| 蜜桃五月天| 这里只有精9| 午夜色婷婷| 超碰中文字幕在线| 日韩av手机在线观看| 五月天综合在线| 色色色热热热| 亚洲五月天婷婷综合| 丁香六月婷婷综合色| 久久精彩视频99| 激情图片亚洲| 激情 婷婷| 欧美激情凹凸丁香网| 婷婷爱综合| 激情五月黄色| 丰满少妇猛烈A片免费看观看| 91精品久久久久久77777| 怡红院视频| 久久人人看| 97操碰视频| 色婷另类| 五月天激情四射| 91天天操天天干天天射| 色五月 五月婷婷| www.99热这里只有精品| 99爱视频在线观看这里只有精品| AV大片在线播放| 久久五月网| 少妇被躁爽到高潮无码文| 99热99这里有免费的精品| 青青.com| 丁香五月婷婷动漫| 99热这里有精品2| 2w在线视频| 可以直接看的AV网站| 五区毛片七区毛片| 久久婷婷五月天蜜桃| 狠狠人人婷婷| 日本啪啪天堂| 色区久久| 色域五月丁香| 婷婷五月丁香香蕉| 激情综合色网| 婷婷干五月综合在线播放| 色色色婷婷五月| 丁香五月激情啪啪啪啪| 亚洲av无码精品色午夜| 婷婷月五天在线在线看| 婷婷五月丁香啪啪| 久久激情五月天| 秋霞AV淫| 九色PORNY自拍成人精彩视频| 5五月综合网亚洲| 婷婷婷五月香蕉| 六月久久狠狠| 中文网婷婷字幕婷| 九九 激情 网| 色三级色三级| www.久热| 五月激情综合激情五月| 国产偷人爽久久久久久老妇APP| 玖玖99福利| 婷婷五月天激情网| www,五月丁,com| 99超超碰| 五月婷婷六月综合| 国产精品色婷婷久久久精品| 欧美大香蕉视频| 国产操B视频| 伊人狠狠丁香婷婷综合尤物| 亚洲色综合| 丁香五月电影| 久久久久亚洲A∨成人乱码电影| 日日干夜夜干| 五月婷在线色视频| 日韩成人影片在线观看| 国产欧美va| 91 九色 入口| 久久婷婷亚洲| 人妻操逼| 日韩在线视频9色| 色婷婷五月天天天干天天操天天爽| 丁香婷婷激情网站| 日日噜噜夜夜狠狠久久丁香六月| 99热碰碰热| 精品人妻一区二区三区四区不卡在| 偷偷狠狠久久婷婷五月天| 日韩一级片| 人人爱天天摸摸天天爱| 婷婷成人av| 亚洲热热视频| 久热大香蕉| 色欲AV导航| 狠狠 久久| 丁香五月天激情视频| 亚洲午夜一区二区| 天天狠狠夜夜狠狠2023| 五月婷婷深爱六月| 婷婷刺激综合| 99色色视频| 思思色综合网站| 天堂网操| 久久三级视频| 99热这里只有精品2016| 99色久| www久| www.99热视频在线观看| 日韩成人无码片| 91免费看片| 深爱婷婷基地| 久久5 9视频免费观看| 婷婷五月av| 91人人网| 丰满少妇乱A片无码| 欧美色色色色色色色| 色天堂A| 99热这里是精品| 精品少妇蜜臀91| 国产精品视频网| 337p大胆噜噜噜噜噜91Av| 婷婷五月情色| 97热久久五月婷婷| JAPANRCEP老熟妇乱子伦视频 | 超碰在线资源| 偷拍五月丁香| 色婷五月天激情| 97精品自拍| 欧美性生交XXXXX无码小说| 亚洲天天综合| 任你艹| 日韩在线看AV| 99热主页日本| av在线色五月丁香婷区久| 大香蕉人在线65| 五月天婷婷久久| 五月婷婷在线综合| 色情性爱视频网址| 91刘玥视频在线观看| 久草五月| www激情婷婷com| 99热精品在线| 综合久久综合五月天婷婷| 婷婷久久亚洲| 五月天婷婷丁香社区| 色婷婷丁香| 一本色道久久综合狠狠躁一二三| 91久久久久久久| 亚洲色色精品| 久久99免费视屏| av首页在线| 久久丁香| 色婷婷五月在线| 最新午夜理论片| 欧美碰碰碰| www.婷婷| 婷婷五月香蕉| 91精品综合久久久久久五月丁香 | 日韩无码色色| 五月天婷婷开心| 婷婷激情九月| 狠狠色噜噜色狠狠狠综合色| 国产精品色色| 91精品丝袜久久久久久| 久久怕怕视频| 涩五月丁香| AV电影在线播放| 色色色色色日韩午夜激情| 99成人| 中文在线成人| 亚洲五月天婷婷在线| 18av天堂| 九热免费视频| 五月婷中文娱乐综合| 亚洲第一综合| 婷婷色五月情| 五月天色婷伊人| 丁香六月婷婷综合啪啪| 久久日婷婷| 97在线精品| 美欧日韩国产成人在战| 欧洲亚洲精品| 色五月视频,小说| 激情五月天啪啪视频| 欧美99视频| 婷婷综合国产| 久久久天堂国产精品女人| 欧美25p| 五月天伊人久久久久| 婷婷开心激情综合五月天| 色狠狠激情五月| 色噜噜狠狠色综合网| 91高潮喷水久久久久久久久| www久久久久久久久久久| 成人丁香五月天| 激情综合五月天| 国产精品视频久久99| 思思视频这里是精品| AAA久久| www.五月天色色色| 六月激情网| 丁香五月天天久久综合小说| 欧美大片| 成人做爰A片免费看视频| 日韩999| 噜噜噜久久| 99热这里只有免费精品| 丁香五月综合网亚洲综合欧美狠狠| 99久久国产宗和精品1上映 | 综激情网| 久99久热| 五月天丁香婷| 久久婷婷五月天激情四射| 婷婷深爱五月| 婷婷五月天激情网址| 精品牛仔裤超碰| 久久超级碰视频| 伊人大香久久| 婷婷色一二三区波多野结衣| 久久九九一區| 五月色婷婷夜色| 色操综合| 31色区视频免费看| 第1影院之五月婷婷| 影音先锋男人av资源站| 婷婷色综合网日韩国产| 九九久久玖玖爱| 99色在线观看视频者| 日产精品一线二线三线芒果| 9色91视频| 欧美韩国日本| 亚洲第一成人无码A片| 精品一区二区三区免费毛片爱| 色欲天天综合网| 99久久婷婷国产综合| 激情五月综合| 婷婷色综合| 久久久久久久人妻| 久久小说| 丁香五月天堂婷婷| AV操一操| 熟美女麻豆| 亚洲人妻电影| 黄网免费观看| 午夜大香蕉| 欧美内射AA| 丁香五月婷婷六月婷婷| 成人超碰AV| 五月婷婷久久激情| 精品皮股午夜AV| 亚洲人成人五月天| 天天噜| 日本久久婷婷| 99爱在线视频| 97在线观看| 91在线97视频| 99久久五月丁香野外| 色婷六月| 婷婷爱在线观看| 五五月丁香花激情综合网| 色狠狠伊人久久五月丁香| 97色色色色色色色色色色色色色| 五月婷婷丁香狠狠撸久久| 五月丁香色| 欧美色九| 超碰人妻在线| 99热传媒| 综合色网站| 99色天堂| 人妻在线中文字幕久久| 新精品99| 97碰| 国产精品a无线| 任你干aa| 五月天天堂久久| 性爱动图国产麻豆一区二区三区 | 日韩抽插操逼| 丁香五月综合在线视频| 欧美激情综合色综合啪啪五月| 超碰AV在线| 五月天婷婷色色| 天天色综网| 99热官网精品在线| 五月丁香色色网| 天干干夜夜操| 五月成人天| 婷婷五月天黄色| 久热这里| 一区中文字幕电影| 五月天啪啪| 天天天添天天操| 婷婷丁香小说| 五月丁香啪啪| 激情婷婷激情在线不卡| 婷婷性爱网| 五月激情久久综合| 色婷婷五月天| 性做久久久久久久免费看| 九九久久色| 超碰免费大香蕉| xx色综合| 婷婷五月综合体验看| jiZZdr| 5Www色5夜| 色啪影院| 亚洲经典小视频| 九色自拍| 色欲久久99精品久久久久久| 激情黄色小说色五月| 激情纯色婷婷五月天在线不卡视频| 五月六月婷| 99精品热| 97艹| 色播丁香五月婷婷操:屄| 可以免费看的AV网站| 夜夜操天天干| 日韩啪图| tingting五月天亚洲| www.久热| 777精品久无码人妻蜜桃| 欧美大道不卡| 日日噜狠狠色综合久久| 久久激情五月| 9久热在线精品| 五月天激情小说婷婷| 色五月影视| 婷婷五月激情网| 在线综合91| 久久婷婷六月| 91视频五月丁香| 国产毛片精品一区二区色欲黄A片| 婷婷综合影院| 久久网思思| 在线播放成人网站| 2021日韩无码| 婷婷激情蜜桃玖玖丁香| 婷婷五月天久久久| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 中文字幕永久免费| 婷婷操婷婷干婷婷射| 99色在线视频| 91日日日| 99精品免费欧美小视频| 国产亚洲精品久久久久久郑州 | 啪啪激情网| 五月婷婷在线综合| http:色情日本com| 色婷婷五月开心六月综合| 色色色色网| 国产精品久久久爽爽爽麻豆色哟哟| 丁香五月中文字幕| 色婷婷亚洲六月婷婷中文字幕| 国产精品99久久久久久久女警| 五月天丁香久久| 亚洲精品国产精品乱码不99| 欧美成人精品三区综合A片| 在线观看亚洲视频影院| 五月婷天天搞视频| 玩熟女五十AV一二三区| 另类的婷婷| 久久性操| 9 1在线视频| 色久综合天天做视频| 成人精品在线| 亚洲无码播放| 成人在线综合| 天堂久久大香蕉| 婷婷五月天成人影片| 久久五月丁香| 五月丁香成人网| 91激情五月开心| 四季日韩AV无码综合| AⅤ色区| 综合色播| aaaaa不卡| 国産精品| 大香蕉久热| 色色色热热热| 色婷婷亚洲在线观看| 五月婷婷开心亚州在线| 日韩av手机在线观看| 99rewww| 五月婷婷天| 久草视频一,二三四| 国产精品久久久海的味道| 九九精品9| 日韩无码人妻一区二区三区综合| 五月丁香婷婷啪啪| 色婷婷狠狠干| 97色色色| a色色色色色| 91久久婷婷| 日良久久| 色婷婷丁香特级性爱视频| 天天弄天天操| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 九九亚洲无码| 综合五月天| 狠狠久久婷婷| 这里只有精品无码| 久久影视婷婷五月| 五月天激情网站| 97干在线看| 丁香五月天成人网站| 亚洲精品444久久久久久| 夜丁香五月婷婷| 婷久久高清| 亚洲激情网站| 七七久久婷婷| 五月花在线观看视频| 亚洲第二AV| 日本狠狠网| 久草九九| 婷婷久久五月天丁香| 五月天伊人综合| 狠狠爱激情网| 69精品人人人人| 婷婷丁香色五月| 婷色五月| 久久久婷婷| 亚洲综合丁香五月| 色啦啦视频| 色综合久久88色综合天天| 东北熟女视频99| 丁香六月婷婷综合缴| 99综合熟女| 九九热啪啪| 国产亚洲在线| 日日爽夜夜爽| 九九热在这里只有精品| 婷婷综合网| 久久久婷| 性一交一乱一交A片久| 天天摸日日舔狠狠添婷婷婷 | 丁香五月中文字幕久色| 操操操91| 色五月天丁香婷婷| 激情五月天黄色小说| 色综合久久久久| 五月丁香婷婷激情在线| 色综啪啪| 182TV大香蕉| 色狠狠色| 婷色五月天| 五月丁香六月婷婷亚洲| 中文字幕婷婷在线| 午夜一区| 人妻五月天激情开心网| 欧美人人草草| 无码区婷婷五月花开| 熟女色专区| 97久久人人人干| 99免费热视频在线| 99操逼| 人妻丰满精品一区二区A片| 亚洲久热无码| 色碰干| 91丨九色丨国产打屁股| 激情综合五月色丁香婷婷| 小泽玛利亚视频一区二区| 色婷久久| 五月丁香激情综合网官网| 色婷婷aV四虎| 亚洲永久四色| 婷婷五月天人妻| 日韩有码久久| 99精品综合视频| 一级A片天天操夜夜操| 婷婷五月色惰| 久久亚洲婷婷| 国产精品热搜丁香五月婷婷| 婷婷综合色| 丰满少妇猛烈A片免费看观看 | 中文字幕在线免费观看视频| 色一情一乱一乱91Av| 夜夜躁爽日日| 色色色色网色色网色色| 影音先锋色婷婷| 免费观看全黄做爰的视频| 激情综合五月婷婷六月丁香| 99精品自拍| 丁香婷婷AV| 一区视频网站| 婷婷五月天色网久| 午夜婷婷久久 | 伊人婷婷青青cao| 亚洲99热| 激情五月综合网| 热的无码综合视频| 婷婷综合五月天| 九九综合九| 超碰九九热| 热99re| 亚洲综合久| 久久婷婷青青| 婷婷免费视频| 婷婷五月天开心网| 久久99热这里只有精品23| 天天网曰日曰夜夜综合永久免费| 色婷视频| 五月婷婷色| 日日婷婷不卡| 人妻AV在线观看| 啪啪日本欧美| 五月婷婷色五月| 亚洲激情婷婷| 五月天激情网址| 九热精品| 一区二区你懂的| 丁香五月激情网| 激情五月天在线免费美女视频| 天天操夜夜夜夜爽| 天天搞天天色综合| 性爱111111| 综合色99| 色五月激情| 伊人深爱综合| 包操45分钟网站| 91丨九色丨熟女丰满| 丁香六月婷婷缴情欧美| 五月草影视| 婷婷,五月天,丁香,第一| 九九激情视频| 五月天婷婷婷| 人人操AV| 综激情网| 亚洲天天操| 婷婷开心综合人妻小说网址| 婷婷五月激情网站| 日本人人干| 香蕉久久五月| 日韩丰满少妇无码内射| 婷婷五月天激情文学| 五月天激情婷婷| 色噜噜狠狠狠综合曰曰曰| 欧洲精品欧洲情| 中文字幕不卡+婷婷五月| 九九激情视频| 欧美十二区| 色婷婷六月| 五月香婷婷| 婷婷久久五月天| 啪啪六月婷婷| 色宗合久久五月婷婷| 五月天天天综合| 色色丁香五月天| 婷婷久久图片| 日韩久久日| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 激情伊人五月天| 色欲久久久久久综合网综合网| 五月天激情社区| 婷婷六月插屄激情| 色狠狠999综合网| 激情色色| 丁香六月色婷婷| 99视频久久久| 激情婷婷五月天丁香| 五月天开心色色网| 激情影院丁香五月| 婷婷色情六月| 国产色五月| 国产一级婬片毛片| 色五月婷婷、老熟女| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 五月丁香啪啪综合网| 五月婷婷开心色伊人| 五月天婷婷日日爱| 久思思热视频在线观看| 久久xx| 日韩欧美一级大黄网站| 超碰超碰在线| 99自拍视频网站| 亚洲成人av在线| 日本久久超碰| 丁香五月欧美色综合| g00d人体西西| 色99无码| 丁香五月天婷婷91| 嫩草国产| 丁香密臀AV激情网| 婷婷色在线视频| 色五月偷偷| 丁香狠狠色婷婷| 超碰在线国产9| 99九九在线观看免费| 中文字幕av在线播放| 色玖玖综合| 国内一级精品| 色婷婷9| 91一起艹| 久久精彩免费视频精彩免费视频| 色五月首页| 色五月激情视频在线综合| 久久久婷| 色婷丁香五月| 亚洲婷婷开心五月| 深爱丁香激情| 激情五月亚洲| 欧美一级操逼视频| 日日操夜夜撸| 国产9色在线/日韩| 六月丁香激情网| 久久99精品视频| 五月婷婷激情| 国产麻豆视频| AⅤ在线播放网| 婷婷自拍| 情色五月天网站| 超碰免费在线| 五月视频日本免费观看| 天天爽人人爽| 激情五月深爱婷婷| 激情五月天小说网| hd五月婷婷在线| 丁香五月久久综合| 九九精品在线观看视频6| 六月丁香婷婷综合在线| 婷婷五月综激情| 五月天婷婷在线播放| 亚洲精品99| 伊人网色婷婷五月天| 五月婷综合| 亚洲午夜电影| 久久机热这里只有精品免费视频| 婷婷色五月天第7色| 丁香五月在线视频黑人| 色色色9| PORNY九色9l自拍视频成人| 欧美色婷婷| 99国产精品久久久久久久久久久| 色色9 9| 国内久久亭亭| 色五月激情视频在线综合| 色综合xx| 久久色五月天激情小说| 99热精品观看| 超碰在线国产| 天堂美国久久| 丁香婷婷色九月| 婷婷免费精品视频 | 婷婷激情丁香五月婷婷激情丁香五月婷婷 | 97在线观视频免费观看| 97色综合视频| 五月丁香精品| 天天综合图片| 五月天涩涩| 亚洲九区| 草了bav视频在线观看| 91丨九色丨国产在线| 久久99久久久久久| 欧美色小说婷婷| 九九热精品在线| 婷婷五月婷婷| 99re资源在线视频导航| 任你搞网站| 青青草搞屄视频网站| 色色COm| 日韩成人av在线| 97干干干丁香| 色色色色色五月丁香| 夜夜骑操AV| 99热国产这里只有精品| 99操| 久久婷婷五月天丁香| 色七七九九| 色五月av伊人| h在线看免费版在线看| 久久激情五月| 97超碰在线观看免费| 丝袜大香蕉| 操射国产日本| 婷婷五月天成人基地| 日本女人久久| 中字幕视频在线永久在线观看免费| 婷婷丁香五月天熟女丝袜| 天天插天天插天天操| 天天谢天天操| 婷婷香五月天| 东北熟女高潮99综合99| 这里只有精品亚洲| 色五月丁香伊人五月| 婷婷五月天AV| 青青久久五月天丁香婷婷| 五月婷婷欧美| 开心五月深爱五月丁香五月激情五月| 色婷婷丁香| 五月婷婷综合在线视频| 丁香五月天无码AV| 欧洲亚洲精品| 天天天天干| 五月丁香综合成人社区| 天天婷婷操| 9月色婷婷| 玖玖婷婷色欲| 激情网站五月| 天天舔天天爽| www,999日本色| 综合色五月| 都市激情五月婷婷亚洲| 亚洲午夜AV| www91精品| 思思精品久久艹| 六月激情婷婷| 色婷婷瘦婷婷日韩| 蜜臀九九九九| 操一操干一干| 色婷婷瘦婷婷日韩| 台湾佬天天日丁香婷婷五月天| 99热超碰在线| 婷婷亚洲久久| 婷婷激情五月综合丁| 色五月在线观看| 久久机热探花| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 怕怕av| 无码人妻激情| 超碰A V在线| 五月丁香六月婷婷免费| 五月婷久久| 1234操逼网| 五月丁香在线偷拍视频| 五月天婷婷视频| 国产超碰人人| 色五月丁香五月婷婷五月成人网| 五月香婷婷| 五月丁香久久网| 5月婷婷6月六月丁香| 97超碰,人人舔,人人操,人人摸| a网站免费观看| 色色五月天婷婷丁香| 日本三久久| 人人草碰| 这里只有精品在线看| 九九这里只有精品| 色色婷婷五月天| 久久hd| 涩玖玖免费视频| 99久久精品网| 九月婷婷| 成人精品在线观看| 91碰碰视频| 色很久综合| 五月婷婷开心亚州在线| 欧美性生交XXXXX无码小说| 91九色精品熟女内射| 狠狠爱婷婷丁香| 久久九九亚洲| 视色综合| 99热99艹在线观看| 开心四月婷婷在线色播播| 日韩无码色色| 婷婷五月天综合网| 一起草无码| 亚洲超级碰| 午夜丁香婷婷| 丁香九色不卡aaa | 色香五月天| 欧美顶级少妇做爰HD| 五月婷婷在线视频免费观看| 九九亚洲视频| 日韩综合天堂| 9999三级片| 五月丁香色婷婷色| 人人摸人人干| 综合色吧| 涩五月婷婷| 五月婷婷丁香网| 五月六月婷| 欧洲区自拍| 午夜激情五月天| 七七色综合| 五月之婷婷| 婷婷丁香大香蕉| 天天日日爽| 成人国产网| 色婷婷五月天天天干天天操天天爽| 九九热123| 五月噜噜| 中文字幕无线久必| 99精品爱| 99re8热精品免费视频| 色婷婷色五月综合| 伊人99久久| 激情综合色| 日韩人妻在线播放| 成 人 色 色| 97超级碰碰碰久久久| 婷婷色正月| 婷婷综合干| 激情六月色| 超碰99热精品| 五月丁香六月激情综合| 玖玖爱综合网| 狠狠综合网| 婷婷色在线观看| 色香欲综合| 天天爽夜夜爽夜夜爽精| 强壮公让我夜夜高潮A片视频| 九九sese| 9色91视频| 婷婷色网站| 色五月婷婷在线| 日日日日做夜夜夜夜无码 | 激情久久久| 色综久久AV| 99热在线观看| 深爱五月最新网址| 99热官网精品在线| 亚洲精品在线视频| 无码人妻电影| 色婷婷基地| 啪啪啪五月天| 991自拍视频| 日日干日日| 97精品欧美91久久久久久久| 六月婷婷综合| 婷婷六月插屄激情| 亚洲AV无码成人电影| 五月婷婷婷| 丁香婷婷五月色成人网站| 九九热只有精品| 日本www五月婷婷| 激情 久久 婷婷| 色五月婷婷一二| 在线看片av| 五月丁香激情啪啪| 开心激情站婷婷五月天| 五月婷婷www| 国产成人av在线| 思思热99er在线视频| 五月丁香亭亭激情操逼网| 综合五月婷婷| 丁香六月久久| 欧美成人AAA片一区国产精品| 天天日天天日天天搞| 色综合偷拍| 婷婷五月天激情文学| hd五月婷婷在线| 日韩啪图| 欧美日韩999| 六月五月久久丁香| 97人人操com| 99自拍视频在线观看| 成人小说 五月天 婷婷| 色婷婷aV四虎| 欧美97色| 狠色狠色狠色狠色狠色网| 婷婷五月在线| 亚洲色啪| 呦呦视频无码播放| 91在线视频综合| 激情四射五月天| 激情五月色综合| 狼友视频在线观看18| 国外亚洲成AV人片在线观看| 天堂草在线看www| 久热91| 色色色色色色综合网| 六月婷婷八月丁香| 99热 免费| 自拍视频在线观看9| 九九免费视频| 狠狠色精品综合| 久久激情五月天| 欧美成人猛片AAAAAAA| 亚洲激情另类| 五月天综合缴情网网站0| 丁香av网| 97啪啪| 五月婷婷狠狠干| 亚洲视频二区| W色综合| 激情综合区| 久久AV电影| 超碰成人电影| 99久99久| 色五月婷婷久久| 五月丁香花激情综合网| 九月婷婷久久久| 以及AA大片看看| 色综合99| 99热精品在线免费观看| 黄色大片又大粗又爽| www.久操| 天天日日夜夜| 欧美五月婷婷| 深爱激情小说五月婷婷| 人妻激情视频| 香蕉97碰碰碰欧美| 五月天成人综合| 日韩精品无码99| 久久婷婷伊人| 久久丁香综合精品综合| 色情五月婷婷| 婷婷六月丁香五月| 亚洲五月婷婷在线| 六月丁香中文字幕| 丁香五月天AV在线| 日日干天天爽| 五月天.com| 亚洲色婷婷网站| 丁香六月啪啪啪| 激情精品久久| 丁香五月天激情| 色色色五月婷| 狠狠草综合网| 婷婷激情五月吧| 色色综合激情| 色.五月综合网| 久久久精品人妻| 欧美色五月| 婷婷激情五月综合丁| 丁香婷婷六月激情文学| 色婷在线视频| 亚洲偷| 五月丁香六月综合激情| 五月丁香久久| 久久这里只有国产视频| 综合五月草 | 色色色综合网| 天天日天天干天天操| 9999热这里只有精品| 影音先锋色色色资源色资源色| 六月婷婷视频| 久热精品免费视频4| 亚洲成人网站在线观看| 8区视频在线| 99热在这里只有精品| 激情五月五月五月婷婷| a色色色色色| 大香蕉中文| 婷婷五月天性爱视频| 久久综合九色综合97婷婷| 天天操天天插| 超碰成人电影| 天天爽天天操| 99爱在线视频观看| www.五月天婷婷姐姐| 人妻性爱av网站| 日本美女上人| 婷婷狠狠97| 精品9l九九九九九77777| 丰满人妻妇伦又伦精品国产 | 乱岳熟女50岁| 久久久久人妻网址| 五月婷丁香久久久| 久久大香蕉丁香| 99在线观看| 色区久久| 亚洲在线操| 99热这里只有精品9| 激情五月www| 久久99热 这里有精品| 夜夜人妻五月天| 99综合免费视频| 狼友视频在线观看18| 91精品又长又大又粗又爽又猛| 丁香社92视频| 国产女18毛片多18精品| 成人国产欧美大片一区| 能看的AV| 深爱五月天| 深爱综合网| 丁香五月婷婷影院| 色五月丁香五月| 性生活视频98791| 五月色综合| 思思热视频在线| 丁香五月天AV| 久久丁香五月婷| 五月深爱网| 丁香网五月天激情| 五月婷色啪| 五月天婷婷五月| 色天天综合成人网| 秋霞影音91人妻久久| 久久婷婷五月激情网站| wwccc久久久| 3p日韩网站视频| 另类丁香五月天区图| 涩涩涩婷婷| 色婷婷五月天天天天天天天天天| 婷婷丁香五月天色播网站| 丁香五月天在线视频| 婷婷五月天激情四射五月天激情| 久热超碰| 人妻爽爽爽久久久久久久久| AV堂狠狠干| 99色这里| 爱爱色五月天| 五月丁香啪啪激情| 成人五月天在线视频在线观看| 怡红院院在线导航网| 色综合xx| 777精品成人a v久久| 婷婷五月丁香色情| 欧美性色五月天| 99热这里只有免费| 九九99视频| 婷婷色六月| 99成人| 五月丁香六月激情综合| 啪啪激情网| 97精品综合| 久久亚洲婷婷| www.五月天| 婷婷五月综合国产精品| www.一区二区三区| 日本欧美999久久久三级片| 婷婷色情五月| 亚洲色激情| 久久HD| 综合欧美五月婷婷| 日日干综合| 五月天激情小说婷婷基地| 九月婷婷激情| 丁香婷婷噜噜| www五月婷婷88导航| 超碰av在| 超碰成人在线免费观看| 97婷婷在线视频| 成人丁香色| 婷婷五月天成人在线视频| 日本人妻丁香婷婷久久寝取熟女五月| 六月婷五月丁香| 丁香婷婷十月| 色色色热热热| 碰碰91| 操91| av操B网站| 涩涩婷婷五月| 六月色色| 五月天激情网址| 日本社区五月天激情| 在线天堂9| 久99| 丁香婷婷综合影院|