oracle 都是parallel惹的禍【1-2分鐘出結果變1-2秒】

原文:http://blog.csdn.net/shushugood/article/details/9000628

--------------------------------------------------------

該項目是中國聯通xxxx話務系統,我的架構設計+需求設計,+運維保障+數據庫開發,全套服務。

在今天開發完畢后,突然有個模塊的需求,用戶號碼為必須選擇,感覺有點郁悶,因為1小時有1000w數據,把所有用戶號碼顯示出來,是不是有點畫蛇添足呢。

我的開始設想是查詢詳單,像中移營業廳,需要輸入號碼,或者省份證查詢模糊查詢,沒有謂詞不能查詢。(感覺設計合情合理)


1.但是想了解整個系統用戶分布情況,必須輸入條件,是不是有點不可用。

2.并且沒有謂詞過濾,查詢會慢,非常慢(1-2分鐘出結果),目標是3-5秒內出數據。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? 注:優化難點是把2秒變成1秒, ?反之,把2小時變成2分鐘非常簡單。

第1步:

下面看看語句和執行計劃:

[sql]?view plain?copy
  1. SQL>??explain?plan?for??SELECT?/*+?parallel(8)???*/??
  2. ??2???starttime?starttime,??
  3. ??3???cv.groupid,??
  4. ??4???cs.custmangerid,??
  5. ??5???callercarrier?callercarrier,??
  6. ??6???callernum?callernum,??
  7. ??7???calledcarrier?calledcarrier,??
  8. ??8???callednum?callednum,??
  9. ??9???calleenum?calleenum,??
  10. ?10???round(duration?/?60,?2)?CallTimeLen,??
  11. ?11???count(*)?over(ORDER?BY?NULL?ROWS?BETWEEN?UNBOUNDED?PRECEDING?AND?UNBOUNDED?FOLLOWING)?"@totalrows"??
  12. ?12????FROM?CS_xxxx?dt,?cfg_vipphones?cv,?cfg_vipusers?cs??
  13. ?13???WHERE?dt.StartTime?>=?'2013-05-31?13:00:00'??
  14. ?14?????and?dt.StartTime?<?'2013-05-31?14:00:00'??
  15. ?15?????AND?dt.Callercarrier?=?2??
  16. ?16?????AND?dt.callernum?>=?cv.beginphone??
  17. ?17?????and?dt.callernum?<=?cv.endphone??
  18. ?18?????and?cv.groupid?=?cs.groupid;??
  19. ???
  20. Explained??
  21. ???
  22. SQL>?select?*?from?table(dbms_xplan.display);??
  23. ???
  24. PLAN_TABLE_OUTPUT??
  25. --------------------------------------------------------------------------------??
  26. Plan?hash?value:?2172492340??
  27. --------------------------------------------------------------------------------??
  28. |?Id??|?Operation??????????????????????????????|?Name????????????|?Rows??|?Bytes??
  29. --------------------------------------------------------------------------------??
  30. |???0?|?SELECT?STATEMENT???????????????????????|?????????????????|???478K|????34??
  31. |*??1?|??PX?COORDINATOR????????????????????????|?????????????????|???????|??
  32. |???2?|???PX?SEND?QC?(RANDOM)??????????????????|?:TQ10001????????|???478K|????34??
  33. |???3?|????WINDOW?BUFFER???????????????????????|?????????????????|???478K|????34??
  34. |*??4?|?????FILTER?????????????????????????????|?????????????????|???????|??
  35. |???5?|??????MERGE?JOIN????????????????????????|?????????????????|???478K|????34??
  36. |???6?|???????SORT?JOIN????????????????????????|?????????????????|????11?|???363??
  37. |???7?|????????BUFFER?SORT?????????????????????|?????????????????|???????|??
  38. |???8?|?????????PX?RECEIVE?????????????????????|?????????????????|???????|??
  39. |???9?|??????????PX?SEND?BROADCAST?????????????|?:TQ10000????????|???????|??
  40. |??10?|???????????NESTED?LOOPS?????????????????|?????????????????|???????|??
  41. |??11?|????????????NESTED?LOOPS????????????????|?????????????????|????11?|???363??
  42. |??12?|?????????????TABLE?ACCESS?BY?INDEX?ROWID|?CFG_VIPUSERS????|?????3?|????18??
  43. |??13?|??????????????INDEX?FULL?SCAN???????????|?PK_CFG_VIPUSERS?|?????3?|??
  44. |*?14?|?????????????INDEX?RANGE?SCAN???????????|?VIPUSERS_FK?????|?????4?|??
  45. ???
  46. PLAN_TABLE_OUTPUT??
  47. --------------------------------------------------------------------------------??
  48. |??15?|????????????TABLE?ACCESS?BY?INDEX?ROWID?|?CFG_VIPPHONES???|?????4?|???108??
  49. |*?16?|???????FILTER???????????????????????????|?????????????????|???????|??
  50. |*?17?|????????SORT?JOIN???????????????????????|?????????????????|???516K|????21??
  51. |??18?|?????????PX?BLOCK?ITERATOR??????????????|?????????????????|???516K|????21??
  52. |*?19?|??????????TABLE?ACCESS?FULL?????????????|?CS_xxxx??????????|???516K|????21??
  53. --------------------------------------------------------------------------------??
  54. Predicate?Information?(identified?by?operation?id):??
  55. ---------------------------------------------------??
  56. ???1?-?filter(TO_DATE('2013-05-31?13:00:00')<TO_DATE('2013-05-31?14:00:00'))??
  57. ???4?-?filter(TO_DATE('2013-05-31?13:00:00')<TO_DATE('2013-05-31?14:00:00'))??
  58. ??14?-?access("CV"."GROUPID"="CS"."GROUPID")??
  59. ??16?-?filter("DT"."CALLERNUM"<="CV"."ENDPHONE")??
  60. ??17?-?access("DT"."CALLERNUM">="CV"."BEGINPHONE")??
  61. ???????filter("DT"."CALLERNUM">="CV"."BEGINPHONE")??
  62. ??19?-?filter("DT"."CALLERCARRIER"=2?AND?"DT"."STARTTIME">='2013-05-31?13:00:00'??
  63. Note??
  64. -----??
  65. ???-?Degree?of?Parallelism?is?8?because?of?hint??
  66. ???
  67. 41?rows?selected??
  68. ???
  69. SQL>???
大家看出問題了嗎,說實話,執行計劃只是一個參考,看看index是否生效,是不是全表scan,nloop,hash,是不是可以增加use_nl, 等hint

OLAP和OLTP 又有很大區別了,包含數據庫參數設定,sql寫法,hint是否啟用等


第2步:

我懷疑是3張表關聯,謂詞出了問題。

注意看filter,看看是否是分區表搞的鬼。 查看后一切正常,因為是我寫的,我最清楚。哈哈。。。

在多表關聯時,如果有視圖,可以考慮視圖的合并,關聯的優先選擇,再hash。 都試過了,不行。


第3 步:

懷疑是并行出錯了,看看表的并且度,索引并行,

或者我不要并行試試。果然,8-10秒出結果

[sql]?view plain?copy
  1. SQL>??explain?plan?for??SELECT??
  2. ??2???starttime?starttime,??
  3. ??3???cv.groupid,??
  4. ??4???cs.custmangerid,??
  5. ??5???callercarrier?callercarrier,??
  6. ??6???callernum?callernum,??
  7. ??7???calledcarrier?calledcarrier,??
  8. ??8???callednum?callednum,??
  9. ??9???calleenum?calleenum,??
  10. ?10???round(duration?/?60,?2)?CallTimeLen,??
  11. ?11???count(*)?over(ORDER?BY?NULL?ROWS?BETWEEN?UNBOUNDED?PRECEDING?AND?UNBOUNDED?FOLLOWING)?"@totalrows"??
  12. ?12????FROM?CS——xx?dt,?cxg_vippxxx?cv,?cxg_vipxxx?cs??
  13. ?13???WHERE?dt.StartTime?>=?'2013-05-31?13:00:00'??
  14. ?14?????and?dt.StartTime?<?'2013-05-31?14:00:00'??
  15. ?15?????AND?dt.Callercarrier?=?2??
  16. ?16?????AND?dt.callernum?>=?cv.beginphone??
  17. ?17?????and?dt.callernum?<=?cv.endphone??
  18. ?18?????and?cv.groupid?=?cs.groupid;??
  19. ???
  20. Explained??
  21. ???
  22. SQL>?select?*?from?table(dbms_xplan.display);??
  23. ???
  24. PLAN_TABLE_OUTPUT??
  25. --------------------------------------------------------------------------------??
  26. Plan?hash?value:?1705527799??
  27. --------------------------------------------------------------------------------??
  28. |?Id??|?Operation?????????????????????????|?Name????????????|?Rows??|?Bytes?|Tem??
  29. --------------------------------------------------------------------------------??
  30. |???0?|?SELECT?STATEMENT??????????????????|?????????????????|???478K|????34M|??
  31. |???1?|??WINDOW?BUFFER????????????????????|?????????????????|???478K|????34M|??
  32. |*??2?|???FILTER??????????????????????????|?????????????????|???????|???????|??
  33. |???3?|????MERGE?JOIN?????????????????????|?????????????????|???478K|????34M|??
  34. |???4?|?????SORT?JOIN?????????????????????|?????????????????|????11?|???363?|??
  35. |???5?|??????NESTED?LOOPS?????????????????|?????????????????|???????|???????|??
  36. |???6?|???????NESTED?LOOPS????????????????|?????????????????|????11?|???363?|??
  37. |???7?|????????TABLE?ACCESS?BY?INDEX?ROWID|?CFGxxUSERS????|?????3?|????18?|??
  38. |???8?|?????????INDEX?FULL?SCAN???????????|?PK_CFG_VIPUSERS?|?????3?|???????|??
  39. |*??9?|????????INDEX?RANGE?SCAN???????????|?VIPUSERS_FK?????|?????4?|???????|??
  40. |??10?|???????TABLE?ACCESS?BY?INDEX?ROWID?|?CFG_xxNES???|?????4?|???108?|??
  41. |*?11?|?????FILTER????????????????????????|?????????????????|???????|???????|??
  42. |*?12?|??????SORT?JOIN????????????????????|?????????????????|???516K|????21M|??
  43. |??13?|???????PARTITION?RANGE?ITERATOR????|?????????????????|???516K|????21M|??
  44. |*?14?|????????TABLE?ACCESS?FULL??????????|?CS_xxx?????????|???516K|????21M|??
  45. ???
  46. PLAN_TABLE_OUTPUT??
  47. --------------------------------------------------------------------------------??
  48. --------------------------------------------------------------------------------??
  49. Predicate?Information?(identified?by?operation?id):??
  50. ---------------------------------------------------??
  51. ???2?-?filter(TO_DATE('2013-05-31?13:00:00')<TO_DATE('2013-05-31?14:00:00'))??
  52. ???9?-?access("CV"."GROUPID"="CS"."GROUPID")??
  53. ??11?-?filter("DT"."CALLERNUM"<="CV"."ENDPHONE")??
  54. ??12?-?access("DT"."CALLERNUM">="CV"."BEGINPHONE")??
  55. ???????filter("DT"."CALLERNUM">="CV"."BEGINPHONE")??
  56. ??14?-?filter("DT"."CALLERCARRIER"=2?AND?"DT"."STARTTIME">='2013-05-31?13:00:00'??
  57. ??????????????14:00:00')??
  58. ???
  59. 32?rows?selected??
  60. ???
  61. SQL>???

第4步:

看看并行設置,這個也有很大關系,因為并行的模塊太多,造成排隊擁塞的情況

<1>如果有并行度低于系統最大并行數的查詢在跑,那接下來的并行查詢會怎么跑呢?
When you specify parallel degree 4 oracle tries to allocate 4 producer slaves and 4 consumer slaves. The producers can feed any of the consumers.?
If there are only 2 slaves available then we use these.?
If there is only 1 slave available then we go serial?
If there are none available then we use serial.?
If parallel_min_percent is set then we error ora 12827 instead of using a lower number of slaves or going serial


<2>設定parallel_max_servers 多大為好?
在多CPU的環境中,一般把CPU-1或CPU的數量做個最大并行數,因為并行查詢運行時還需要一個進程協調各并行進程.對于單CPU沒什么好說的.


<3>并行查詢能提高系統的性能嗎?
并行查詢運行時,很容易會使機器運行在高負荷下,令系統對其它事務的處理時間大大加長.并行查詢一般適合在非業務高峰值人工執行,并不適合在程序中指定運行并行查詢.
PINNER:
并行不等于快速,僅僅是適合在數據倉庫環境,低業務請求與低并發操作的時候
典型的OLTP系統,如果我們的系統,是絕對不允許并行查詢出現的。?

(引薦哈)


第5步:

問題解決,注意看看問題,paralle的寫法,當一個表時,用parallel(8) , 表示當前表并行8個進程

?當有多個表是,請指定某一個表,否則會默認3個表,當然執行計劃上看不出來,可以trace一把 看看

[sql]?view plain?copy
  1. SQL>??explain?plan?for??SELECT?/*+?parallel(dt,8)???*/??
  2. ??2???starttime?starttime,??
  3. ??3???cv.groupid,??
  4. ??4???cs.custmangerid,??
  5. ??5???callercarrier?callercarrier,??
  6. ??6???callernum?callernum,??
  7. ??7???calledcarrier?calledcarrier,??
  8. ??8???callednum?callednum,??
  9. ??9???calleenum?calleenum,??
  10. ?10???round(duration?/?60,?2)?CallTimeLen,??
  11. ?11???count(*)?over(ORDER?BY?NULL?ROWS?BETWEEN?UNBOUNDED?PRECEDING?AND?UNBOUNDED?FOLLOWING)?"@totalrows"??
  12. ?12????FROM?CS_CDR?dt,?cfg_vipphones?cv,?cfg_vipusers?cs??
  13. ?13???WHERE?dt.StartTime?>=?'2013-05-31?13:00:00'??
  14. ?14?????and?dt.StartTime?<?'2013-05-31?14:00:00'??
  15. ?15?????AND?dt.Callercarrier?=?2??
  16. ?16?????AND?dt.callernum?>=?cv.beginphone??
  17. ?17?????and?dt.callernum?<=?cv.endphone??
  18. ?18?????and?cv.groupid?=?cs.groupid;??
  19. ???
  20. Explained??
  21. ???
  22. SQL>?select?*?from?table(dbms_xplan.display);??
  23. ???
  24. PLAN_TABLE_OUTPUT??
  25. --------------------------------------------------------------------------------??
  26. Plan?hash?value:?2172492340??
  27. --------------------------------------------------------------------------------??
  28. |?Id??|?Operation??????????????????????????????|?Name????????????|?Rows??|?Bytes??
  29. --------------------------------------------------------------------------------??
  30. |???0?|?SELECT?STATEMENT???????????????????????|?????????????????|???478K|????34??
  31. |*??1?|??PX?COORDINATOR????????????????????????|?????????????????|???????|??
  32. |???2?|???PX?SEND?QC?(RANDOM)??????????????????|?:TQ10001????????|???478K|????34??
  33. |???3?|????WINDOW?BUFFER???????????????????????|?????????????????|???478K|????34??
  34. |*??4?|?????FILTER?????????????????????????????|?????????????????|???????|??
  35. |???5?|??????MERGE?JOIN????????????????????????|?????????????????|???478K|????34??
  36. |???6?|???????SORT?JOIN????????????????????????|?????????????????|????11?|???363??
  37. |???7?|????????BUFFER?SORT?????????????????????|?????????????????|???????|??
  38. |???8?|?????????PX?RECEIVE?????????????????????|?????????????????|???????|??
  39. |???9?|??????????PX?SEND?BROADCAST?????????????|?:TQ10000????????|???????|??
  40. |??10?|???????????NESTED?LOOPS?????????????????|?????????????????|???????|??
  41. |??11?|????????????NESTED?LOOPS????????????????|?????????????????|????11?|???363??
  42. |??12?|?????????????TABLE?ACCESS?BY?INDEX?ROWID|?CFG_VIPUSERS????|?????3?|????18??
  43. |??13?|??????????????INDEX?FULL?SCAN???????????|?PK_CFG_VIPUSERS?|?????3?|??
  44. |*?14?|?????????????INDEX?RANGE?SCAN???????????|?VIPUSERS_FK?????|?????4?|??
  45. ???
  46. PLAN_TABLE_OUTPUT??
  47. --------------------------------------------------------------------------------??
  48. |??15?|????????????TABLE?ACCESS?BY?INDEX?ROWID?|?CFG_VIPPHONES???|?????4?|???108??
  49. |*?16?|???????FILTER???????????????????????????|?????????????????|???????|??
  50. |*?17?|????????SORT?JOIN???????????????????????|?????????????????|???516K|????21??
  51. |??18?|?????????PX?BLOCK?ITERATOR??????????????|?????????????????|???516K|????21??
  52. |*?19?|??????????TABLE?ACCESS?FULL?????????????|?CS_xxxx?????????|???516K|????21??
  53. --------------------------------------------------------------------------------??
  54. Predicate?Information?(identified?by?operation?id):??
  55. ---------------------------------------------------??
  56. ???1?-?filter(TO_DATE('2013-05-31?13:00:00')<TO_DATE('2013-05-31?14:00:00'))??
  57. ???4?-?filter(TO_DATE('2013-05-31?13:00:00')<TO_DATE('2013-05-31?14:00:00'))??
  58. ??14?-?access("CV"."GROUPID"="CS"."GROUPID")??
  59. ??16?-?filter("DT"."CALLERNUM"<="CV"."ENDPHONE")??
  60. ??17?-?access("DT"."CALLERNUM">="CV"."BEGINPHONE")??
  61. ???????filter("DT"."CALLERNUM">="CV"."BEGINPHONE")??
  62. ??19?-?filter("DT"."CALLERCARRIER"=2?AND?"DT"."STARTTIME">='2013-05-31?13:00:00'??
  63. ???
  64. 37?rows?selected??
  65. ???
  66. SQL>???


目前是3秒出結果,已經達到預期,當然謂詞為1小時,或者有號碼過濾絕對是1秒內響應速度。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539739.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539739.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539739.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

二叉搜索樹(BST樹)的簡單實現

#include <stdlib.h>template<typename T>class CBinSTree;template <typename T>class CTreeNode{//樹節點類public:CTreeNode(const T& item,CTreeNode<T>* lptr NULL,CTreeNode<T>* rptr NULL):data(item),left(lptr),right(rptr){}CTr…

Oracle 創建 DBLink 的方法

原文出處&#xff1a;http://blog.csdn.net/davidhsing/article/details/6408770 ------------------- 1、如果需要創建全局 DBLink&#xff0c;則需要先確定用戶有創建 dblink 的權限&#xff1a; [c-sharp] view plaincopy print?select * from user_sys_privs where privi…

eclipse init 配置

--設置最大的堆和最小堆大小.兩者一樣表示固定大小.這樣可以防止老年代內存擴展造成額外的gc.當然也會多占一些內存.系統內存不足的慎用 -Xms512m -Xmx512m --加大年輕代內存.減少minor gc -Xmn164m --這個是永久代大小.默認是64M,增加到96M.固定大小,減少擴展造成的gc -XX:Per…

Oracle對表空間操作的sql

管理員給用戶增加不限制表空間權限 grant unlimited tablespace to 用戶; 查看表空間使用情況 SELECT a.tablespace_name "表空間名", total "表空間大小", free "表空間剩余大小", (total - free) "表空間使用大小", total / (…

IPKISS Tutorials------線路仿真

IPKISS------線路仿真 推薦閱讀引言正文示例1------PDK中集成好的器件示例2------使用 i3.Circuit 框架示例3------i3.PCell 框架推薦閱讀 Matplotlib ------ 縱坐標科學計數法含義 引言 我們知道,想要在 IPKISS 中進行仿真,首先需要對線路進行定義,但是我們知道,在 IPK…

Oracle Database 11g Express Edition使用限制,與其他版本的區別

Oracle Database 11g Express Edition是 Oracle 數據庫的免費版本&#xff0c;支持標準版的大部分功能&#xff0c;11g Express Edition 提供 Windows 和 Linux 版本。 做為免費的 Oracle 數據庫版本&#xff0c;Express Edition的限制是&#xff1a; 1&#xff09;最大數據庫大…

c++ 復制構造函數_C++學習刷題8--復制構造函數和賦值運算符重載函數

一、前言本部分為C語言刷題系列中的第8節&#xff0c;主要講解這幾個知識點&#xff1a;復制構造函數和賦值運算符重載函數。歡迎大家提出意見、指出錯誤或提供更好的題目&#xff01;二、知識點講解知識點1&#xff1a;復制構造函數1、當依據一個已存對象創建一個新對象時&…

ORACLE使用WITH AS和HINT MATERIALIZE優化SQL解決FILTER效率低下

原文&#xff1a;http://blog.csdn.net/liangweiwei130/article/details/37882503 ------------------------------------------------- 在做項目的過程中&#xff0c;一個頁面使用類似如下的SQL查詢數據&#xff0c;為了保密和使用方便&#xff0c;我把項目中有關的表名和字段…

面試題333

2019獨角獸企業重金招聘Python工程師標準>>> 面試題333 博客分類&#xff1a; java 1、spring的緩存,mybatis緩存2、介紹下dubbo。A服務調用B服務&#xff0c;B服務又調用C服務,這種情況怎么辦3、JVM監控工具有哪些&#xff0c;區別又是什么&#xff08;如能追上各個…

mysql vfp_用 VFP 連接 MYSQL 數據庫

今天試了一下用 Visual FoxPro 連接 MySQL 數據庫。首先在自己機子上架設 MySQL 數據庫&#xff0c;就不多說了&#xff0c;我是直接用 XAMPP 架設的服務器。然后在 VFP 里輸入命令&#xff1a;sqlhandle SQLSTRINGCONNECT("driver{MySQL ODBC 5.1 Driver};server127.0.0…

oracle中with的用法及用處

原文出處&#xff1a;http://blog.csdn.net/chenjinlin1/article/details/6572401 ---------------------------------------------------------------- WITH 用于一個語句中某些中間結果放在臨時表空間的SQL語句 如 WITH channel_summary AS ( SELECT channels.channel_de…

xpath選擇當前結點的子節點

2019獨角獸企業重金招聘Python工程師標準>>> xpath選擇當前結點的子節點 博客分類&#xff1a; 搜索引擎&#xff0c;爬蟲 在通過selenium使用xpath選擇節點的時候&#xff0c;可能會遇到這么一種情況&#xff1a;在指定的當前節點下搜索滿足要求的節點。 node dri…

mysql中主從復制配置文件_MySQL主從復制 配置文件實例

1、主服務器配置文件# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html[mysqld]# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70%…

SQL中,where 與 having 的性能比較

原文&#xff1a;http://blog.csdn.net/showshore/article/details/7263115 --------------------------------------------------------- 在做項目的過程中&#xff0c;使用sql語句時&#xff0c;很多時候會用到where或having。 看到國外一個論壇上有人提到兩者性能比較的這個…

Spark 獨立部署模式

2019獨角獸企業重金招聘Python工程師標準>>> Spark 獨立部署模式 博客分類&#xff1a; spark 除了在 Mesos 或 YARN 集群上運行之外, Spark 還提供一個簡單的獨立部署的模塊。你通過手動開始master和workers 來啟動一個獨立的集群。你也可以利用我們提供的腳本 .…

mysql數據庫的鏈接地址_常用數據庫連接URL地址大全

1、Oracle8/8i/9i數據庫(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl為數據庫的SID String user="test"; String password="test"; Con…

數據庫中where與having區別~~~

1、where和having的執行級別不同 在查詢過程中聚合語句(sum,min,max,avg,count)要比having子句優先執行.而where子句在查詢過程中執行優先級別優先于聚合語句(sum,min,max,avg,count)。 having就是來彌補where在分組數據判斷時的不足。因為where執行優先級別要快于聚合語句。…

spring boot 1.5.4 定時任務和異步調用(十)

1 Spring Boot定時任務和異步調用 我們在編寫Spring Boot應用中經常會遇到這樣的場景&#xff0c;比如&#xff1a;我需要定時地發送一些短信、郵件之類的操作&#xff0c;也可能會定時地檢查和監控一些標志、參數等。 spring boot定時任務spring-boot-jsp項目源碼&#…

ORA-04063: view DAILY.TMP_TBX_100_0_S4 有錯誤

執行&#xff1a; CREATE TABLE TMP_TBX_100_0_S3 AS SELECT t.* FROM (select t1.*,NULL AS sdate, NULL AS report_id from TMP_TBX_100_0_S4_1 t1 union all select t2.* from TMP_TBX_100_0_S4_2 t2) t 報錯&#xff1a; ORA-00955: name is already used by an exis…

MySQL左連接還有過濾條件_MySQL左連接問題,右表做篩選,左表列依然在?

問 題原料兩張表&#xff0c;一張user表&#xff0c;一張user_log表(這個例子舉的不好)CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) DEFAULT NULL,PRIMARY KEY (id)) ENGINEInnoDB DEFAULT CHARSETutf8;CREATE TABLE user_log (id int(10) NOT NU…