印log:
`logger.info(f"==={sys._getframe().f_lineno}===")`
效能監測相關:
```
計算 Gunicorn 的具體線程數
ps -eLf | grep gunicorn | wc -l
列出 CPU 數量:
cat /proc/cpuinfo | grep "^physical id" | sort | uniq | wc -l
列出每個 CPU 的核心數量:
cat /proc/cpuinfo | grep "^cpu cores" | uniq
列出全部 CPU 核心數量:
cat /proc/cpuinfo | grep "^processor" | wc -l
```
object not exist 會發生在同時有兩個Airflow的process執行同個procedure
顯示當前目錄的總大小
`$ du -sh .`
顯示當前目錄底下各檔案資料夾的 size
`$ du -sh ./*`
```
-- 使用 V$SESSION 和 V$SQL 找出當前執行最久的 SQL
SELECT s.sid, s.serial#, s.username, s.status, s.sql_id, s.event,
q.sql_text, q.elapsed_time / 1000000 AS elapsed_seconds
FROM v$session s
JOIN v$sql q ON s.sql_id = q.sql_id
WHERE s.status = 'ACTIVE'
ORDER BY q.elapsed_time DESC;
-- 使用 V$ACTIVE_SESSION_HISTORY(ASH)查詢過去的慢 SQL
SELECT sql_id, sql_plan_hash_value, session_id, session_serial#,
sample_time, event, wait_class, session_state
FROM v$active_session_history
WHERE sample_time > SYSDATE - INTERVAL '5' MINUTE
ORDER BY sample_time DESC;
-- 查詢 Oracle 內部的記憶體使用狀況
SELECT name, value/1024/1024 AS memory_MB
FROM v$pgastat
WHERE name IN ('total PGA allocated', 'maximum PGA allocated');
-- 查詢 Oracle 內部的 CPU 使用狀況
SELECT stat_name, valueFROM v$osstat WHERE stat_name IN ('NUM_CPUS', 'LOAD', 'BUSY_TIME');
-- 使用 V$SESSION 找出高 CPU 消耗的 SQL
SELECT s.sid, s.serial#, s.username, s.status, s.sql_id, q.sql_text, q.cpu_time/1000000 AS cpu_seconds FROM v$session s JOIN v$sql q ON s.sql_id = q.sql_id WHERE s.status = 'ACTIVE'ORDER BY q.cpu_time DESC;
```
重新Build DEV Image 紀錄

重新Build UAT Image 紀錄

查看package版本
`docker exec -it your_container_name conda run -n umc-dev pip show package_name`
用VS Code的正規取代,如果要用變數來代表查到的值,可以用$1、$2
舉例:
查詢: null, '(\w*)', \d*
取代: null, '$1',
以上範例就是用$1將(\w*)給取代(常犯的錯誤是忘記加括弧)