SELECT
*
FROM
(
SELECT
TMP_PAGE.*,
ROWNUM ROW_ID
FROM
(
SELECT
*
FROM
VW_BDEPQ_CZBK
WHERE
(
is_deleted = 2
AND batchno = 2
AND datatype = 8
AND is_assigned = 2
AND is_generate IN (0, 2)
)
AND type = 1
AND fis_year = '2026'
AND mo_code = '230200000'
AND 1 = 1
AND
(
manage_id IN ('7A82E872B225495E9BAFEA3E408F23CA', 'A2060B44328349708B87EFB609A29ZYS',..N多个..,'CC34B25E32D24F5EAE5C7D5E28609CEB')
)
AND
(
dep_id IN ('C5920C1D41D3EFF2E0531FE33C0ACFB9', 'C5920C1D41D7EFF2E0531FE33C0ACFB9',...,'A2060B44328349708B87EFB609A29ZYS')
)
AND
(
agency_id IN ('38996DAAEEBA4DF1A930AFF648F05FEF', 'C0FC4146B6D544E3B44E3673EA993A38',...,'68C34B194EFB4DC49DC63586AA11EE1B')
OR agency_id IN ('EF41301D99AF43A98A6E30095DD4041F', '967F9D3BD3B84587927B3F7A2BDE5BD3',...,'0D0FB9881D3D45008E535D213CC29680')
OR agency_id IN ('CA3A692C347A486D8FAB022C260DD445', '3FD2EB59B23C441FAD6218AE8AF58B36',...,'41D141B59BB247C79C34984172313F56')
OR agency_id IN ('4889192407384B809D99AEA8BC5E03D1', '8B5E11046D68489EB4325998C4894ED2', ...,'D15FDEF8F9DC4E6D8C0B39E4A7622E84')
)
AND
(
dept_id IN ('38996DAAEEBA4DF1A930AFF648F05FEF', 'C5A35C01207F461BBF30EF1455E8868D',...,'6AB7103DC31E4D6B926712D0F8B25042')
)
)
TMP_PAGE
)
WHERE
ROW_ID <= 20
AND ROW_ID > 0;
--视图1,简化后
CREATE OR REPLACE VIEW VW_BDEPQ_CZBK
AS
SELECT c.GUID,
c.BT_TRANS_ID,
c.FIS_ID,
...
c.is_track
FROM (SELECT a.*, 1 AS type
FROM VW_BU_AN_TMP a
WHERE a.batchno = 2
AND a.datatype = 8
AND a.is_bgt_detail = 1
AND a.fund_type_code like '1%'
AND a.is_deleted = 2
AND a.apply_up > 0
AND (EXISTS (SELECT 1
FROM bg_buget_app b
WHERE a.dept_code = b.dept_code
AND a.mo_code = b.mo_code
AND a.fis_year = b.fis_year
AND b.status = 1
AND b.type = 1
and b.funds_type='czbk'
AND b.is_deleted = 2))) c;
--视图2,简化后
CREATE OR REPLACE VIEW VW_BU_AN_TMP
AS
SELECT
bgt.bgt_pman_id as guid,
bgt.agency_id||'_'||bgt.pro_code AS BT_TRANS_ID,
bgt.bgt_pman_id AS FIS_ID,
...
FROM
bg_p_ual bgt
WHERE
bgt.apply_up > 0
AND bgt.fund_type_code <>'99999'
AND bgt.gov_bgt_eco_id IS NOT NULL
AND bgt.exp_func_id IS NOT NULL
AND bgt.dep_bgt_eco_id IS NOT NULL
AND bgt.budget_level_id IS NOT NULL
and bgt.exP_func_code not like '23006%'
and bgt.is_bgt_carryover IS null
AND bgt.is_deleted = 2
AND c4 = 1
and IS_ASSIGNED=2
AND bgt.batchno = 2
AND bgt.datatype >= 6;
1 #NSET2: [10, 1->9, 10520]
2 #PRJT2: [10, 1->9, 10520]; exp_num(206), is_atom(FALSE)
3 #SLCT2: [10, 1->9, 10520]; DMTEMPVIEW_892651566.ROW_ID > var28
4 #PRJT2: [10, 1->9, 10520]; exp_num(206), is_atom(FALSE)
5 #RNSK: [10, 1->9, 10520];
6 #PRJT2: [10, 1->9, 10520]; exp_num(205), is_atom(FALSE)
7 #TOPN2: [10, 1->9, 10520];
8 #PRJT2: [10, 1->9, 10520]; exp_num(205), is_atom(FALSE)
9 #PRJT2: [10, 1->9, 10520]; exp_num(203), is_atom(FALSE)
10 #HASH2 INNER JOIN: [10, 1->9, 10520]; KEY_NUM(1), MEM_USED(12288KB), DISK_USED(0KB) KEY(A.DEPT_CODE=B.DEPT_CODE) KEY_NULL_EQU(0)
11 #PRJT2: [1, 2->9, 10238]; exp_num(202), is_atom(FALSE)
12 #UNION FOR OR2: [1, 2->9, 10238]; key_num(0)
13 #HASH RIGHT SEMI JOIN2: [1, 1->0, 10238]; key_num(1), MEM_USED(0KB), DISK_USED(0KB) KEY(DMTEMPVIEW_892651615.colname=exp11) KEY_NULL_EQU(0)
14 #CONST VALUE LIST: [1, 22, 48]; row_num(22), col_num(1)
15 #HASH RIGHT SEMI JOIN2: [1, 1->0, 10238]; key_num(1), MEM_USED(0KB), DISK_USED(0KB) KEY(DMTEMPVIEW_892651614.colname=BGT.IS_GENERATE) KEY_NULL_EQU(0)
16 #CONST VALUE LIST: [1, 2, 30]; row_num(2), col_num(1)
17 #SLCT2: [1, 1->0, 10238]; (BGT.EXP_FUNC_CODE >= '23007' AND NOT(BGT.GOV_BGT_ECO_ID IS NULL) AND NOT(BGT.EXP_FUNC_ID IS NULL) AND NOT(BGT.DEP_BGT_ECO_ID IS NULL) AND NOT(BGT.BUDGET_LEVEL_ID IS NULL) AND BGT.IS_BGT_CARRYOVER IS NULL AND BGT.FUND_TYPE_CODE >= '1' AND BGT.FUND_TYPE_CODE < '2' AND BGT.IS_DELETED = var30 AND BGT.IS_ASSIGNED = var30 AND BGT.BATCHNO = var30 AND ... )
18 #NEST LOOP INDEX JOIN2: [1, 1->29001, 10238]
19 #NEST LOOP INNER JOIN2: [434, 4344978->4344978, 0];
20 #NEST LOOP INNER JOIN2: [3, 33682->33682, 0];
21 #CONST VALUE LIST: [1, 1531->1531, 48]; row_num(1531), col_num(1)
22 #CONST VALUE LIST: [1, 22->132, 48]; row_num(22), col_num(1)
23 #CONST VALUE LIST: [1, 129->17028, 48]; row_num(129), col_num(1)
24 #PARALLEL: [1, 1->29001, 10238]; scan_type(EQU,EQU) range_sfun_opt(0)
25 #BLKUP2: [1, 1->29001, 10238]; IDX_BG_P_UAL_04(BG_P_UAL); use_clu_addr(0)
26 #SSEK2: [1, 1->29001, 10238]; scan_type(ASC), IDX_BG_P_UAL_04(BG_P_UAL), is_global(0), scan_range[('230200000','2026',DMTEMPVIEW_892651600.colname,DMTEMPVIEW_892651601.colname,DMTEMPVIEW_892651602.colname),('230200000','2026',DMTEMPVIEW_892651600.colname,DMTEMPVIEW_892651601.colname,DMTEMPVIEW_892651602.colname)]
27 #HASH RIGHT SEMI JOIN2: [1, 1->9, 10238]; key_num(1), MEM_USED(224KB), DISK_USED(0KB) KEY(DMTEMPVIEW_892651617.colname=exp11) KEY_NULL_EQU(0)
28 #CONST VALUE LIST: [1, 22->22, 48]; row_num(22), col_num(1)
29 #HASH RIGHT SEMI JOIN2: [1, 1->9, 10238]; key_num(1), MEM_USED(224KB), DISK_USED(0KB) KEY(DMTEMPVIEW_892651616.colname=BGT.IS_GENERATE) KEY_NULL_EQU(0)
30 #CONST VALUE LIST: [1, 2->2, 30]; row_num(2), col_num(1)
31 #SLCT2: [1, 1->12, 10238]; (BGT.EXP_FUNC_CODE < '23006' AND NOT(BGT.GOV_BGT_ECO_ID IS NULL) AND NOT(BGT.EXP_FUNC_ID IS NULL) AND NOT(BGT.DEP_BGT_ECO_ID IS NULL) AND NOT(BGT.BUDGET_LEVEL_ID IS NULL) AND BGT.IS_BGT_CARRYOVER IS NULL AND BGT.FUND_TYPE_CODE >= '1' AND BGT.FUND_TYPE_CODE < '2' AND BGT.IS_DELETED = var34 AND BGT.IS_ASSIGNED = var34 AND BGT.BATCHNO = var34 AND ... )
32 #NEST LOOP INDEX JOIN2: [1, 1->29001, 10238]
33 #NEST LOOP INNER JOIN2: [434, 4344978->4344978, 0];
34 #NEST LOOP INNER JOIN2: [3, 33682->33682, 0];
35 #CONST VALUE LIST: [1, 1531->1531, 48]; row_num(1531), col_num(1)
36 #CONST VALUE LIST: [1, 22->132, 48]; row_num(22), col_num(1)
37 #CONST VALUE LIST: [1, 129->17028, 48]; row_num(129), col_num(1)
38 #PARALLEL: [1, 1->29001, 10238]; scan_type(EQU,EQU) range_sfun_opt(0)
39 #BLKUP2: [1, 1->29001, 10238]; IDX_BG_P_UAL_04(BG_P_UAL); use_clu_addr(0)
40 #SSEK2: [1, 1->29001, 10238]; scan_type(ASC), IDX_BG_P_UAL_04(BG_P_UAL), is_global(0), scan_range[('230200000','2026',DMTEMPVIEW_892651603.colname,DMTEMPVIEW_892651604.colname,DMTEMPVIEW_892651605.colname),('230200000','2026',DMTEMPVIEW_892651603.colname,DMTEMPVIEW_892651604.colname,DMTEMPVIEW_892651605.colname)]
41 #PRJT2: [8, 108->1, 282]; exp_num(1), is_atom(FALSE)
42 #HAGR2: [8, 108->1, 282]; grp_num(3), sfun_num(0), MEM_USED(1651KB), DISK_USED(0KB); slave_empty(0) keys(BG_BUGET_APP.DEPT_CODE, BG_BUGET_APP.MO_CODE, BG_BUGET_APP.FIS_YEAR)
43 #SLCT2: [7, 108->1, 282]; (BG_BUGET_APP.FUNDS_TYPE = 'czbk' AND BG_BUGET_APP.MO_CODE = '230200000' AND BG_BUGET_APP.FIS_YEAR = '2026' AND BG_BUGET_APP.STATUS = var38 AND BG_BUGET_APP.TYPE = var38 AND BG_BUGET_APP.IS_DELETED = var39)
44 #CSCN2: [7, 45032->43479, 282]; INDEX33566893(BG_BUGET_APP); btr_scan(1)
Statistics
-----------------------------------------------------------------
0 data pages changed
0 undo pages changed
0 logical reads
42 physical reads
0 redo size
32522 bytes sent to client
64689 bytes received from client
1 roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
251 io wait time(ms)
151383 exec time(ms)
--ET(部分)
HI3 958 0% 15 10 6 12288 0 4 0 null null 9 null
SLCT2 1280 0% 14 43 173 0 0 0 0 null null 0 null
SLCT2 5014 0% 13 17 349 0 0 0 0 null null 0 null
SLCT2 9262 0.01% 12 31 350 0 0 0 0 null null 0 null
CSCN2 16764 0.01% 11 44 171 0 0 0 0 null null 0 null
NLI2 26159 0.02% 10 19 17371 0 0 0 0 null null 0 null
NLI2 28219 0.02% 9 33 17371 0 0 0 0 null null 0 null
IJI2 1545574 1.04% 8 18 4362647 0 0 0 0 null null 0 null
IJI2 1634197 1.1% 7 32 4362647 0 0 0 0 null null 0 null
BLKUP2 10841643 7.3% 6 25 8690650 0 0 0 0 null null 0 null
BLKUP2 10993349 7.4% 5 39 8690650 0 0 0 0 null null 0 null
PLL 23147542 15.58% 4 24 8690650 0 0 0 0 null null 0 null
PLL 23365668 15.72% 3 38 8690650 0 0 0 0 null null 0 null
SSEK2 38355013 25.81% 2 26 4345325 0 0 0 0 null null 0 null
SSEK2 38622765 25.99% 1 40 4345325 0 0 0 0 null null 0 null
1、针对执行计划中第44步的CSCN,从43步明显可以看出这里的SLCT过滤性很好但缺少合适的索引,可以对SLCT字段创建索引进行谓词下推;
2、从第12步的or表达式以下的执行计划可以看出存在两个分支分别对表BG_P_UAL进行SSEK索引数据定位,实际需要过滤出29001行记录,第24和38的parallel代表这是一张分区表,并且两个分支均命中索引IDX_BG_P_UAL_04,is_global(0)则意味着该索引为本地索引,从ET结果也可以看出两次索引范围扫描+回表的代价需要消耗100s以上,索引的过滤性也比较差,因此可以通过hint optimizer_or_nbexp(2)对or表达式进行合并处理;
3、执行计划中8、9、11、41均存在PRJT操作符,下层计划节点的字段投影通常意味着没有进行有效的视图上拉,因此可以通过hint view_pullup_flag(34)进行强制上拉;
4、由于在第一层视图中VW_BU_AN_TMP a和bg_buget_app b进行了HASH2 INNER JOIN,而bg_buget_app表通过连接条件下推后可以过滤出少量数据,因此让b表作为驱动表,修改BG_P_UAL表的索引IDX_BG_P_UAL_04为global index,来进行索引嵌套循环连接,以小结果集驱动大结果集要更加高效;
1、首先对bg_buget_app表创建组合索引实现谓词下推
CREATE INDEX IDX_BG_BUGET_APP_260331_01 ON BG_BUGET_APP(MO_CODE,FIS_YEAR,FUNDS_TYPE,STATUS,TYPE,IS_DELETED);
2、修改索引IDX_BG_P_UAL_04为全局索引
CREATE OR REPLACE INDEX IDX_BG_P_UAL_04 ON BG_P_UAL(MO_CODE,FIS_YEAR,DEPT_CODE,MANAGE_ID,AGENCY_ID) global;
3、添加hint
/*+ optimizer_or_nbexp(2) view_pullup_flag(34)*/
1 #NSET2: [1, 1->9, 10250]
2 #PRJT2: [1, 1->9, 10250]; exp_num(207), is_atom(FALSE)
3 #SLCT2: [1, 1->9, 10250]; DMTEMPVIEW_892141022.ROW_ID > var15
4 #PRJT2: [1, 1->9, 10250]; exp_num(207), is_atom(FALSE)
5 #RNSK: [1, 1->9, 10250];
6 #SLCT2: [1, 1->9, 10250]; (BGT.EXP_FUNC_CODE < '23006' OR BGT.EXP_FUNC_CODE >= '23007')
7 #INDEX JOIN SEMI JOIN2: [1, 1->9, 10250]; key_num(0) ; join condition(BGT.DEPT_CODE = B.DEPT_CODE), flt_batch_exec(0)
8 #SLCT2: [1, 1->9, 10250]; (NOT(BGT.GOV_BGT_ECO_ID IS NULL) AND NOT(BGT.EXP_FUNC_ID IS NULL) AND NOT(BGT.DEP_BGT_ECO_ID IS NULL) AND NOT(BGT.BUDGET_LEVEL_ID IS NULL) AND BGT.IS_BGT_CARRYOVER IS NULL AND BGT.FUND_TYPE_CODE >= '1' AND BGT.FUND_TYPE_CODE < '2' AND BGT.IS_DELETED = var17 AND BGT.IS_ASSIGNED = var17 AND BGT.BATCHNO = var17 AND BGT.DATATYPE = var18 AND ... )
9 #NEST LOOP INDEX JOIN2: [1, 1->29001, 10250]
10 #NEST LOOP INNER JOIN2: [434, 4344978->4344978, 0];
11 #NEST LOOP INNER JOIN2: [3, 33682->33682, 0];
12 #CONST VALUE LIST: [1, 1531->1531, 48]; row_num(1531), col_num(1)
13 #CONST VALUE LIST: [1, 22->132, 48]; row_num(22), col_num(1)
14 #CONST VALUE LIST: [1, 129->17028, 48]; row_num(129), col_num(1)
15 #PARALLEL: [1, 1->29001, 10250]; scan_type(EQU,EQU) range_sfun_opt(0)
16 #BLKUP2: [1, 1->29001, 10250]; IDX_BG_P_UAL_04(BG_P_UAL); use_clu_addr(0)
17 #SSEK2: [1, 1->29001, 10250]; scan_type(ASC), IDX_BG_P_UAL_04(BG_P_UAL), is_global(1), scan_range[('230200000','2026',DMTEMPVIEW_892141042.colname,DMTEMPVIEW_892141043.colname,DMTEMPVIEW_892141044.colname),('230200000','2026',DMTEMPVIEW_892141042.colname,DMTEMPVIEW_892141043.colname,DMTEMPVIEW_892141044.colname)]
18 #BLKUP2: [1, 112->9, 234]; IDX_BG_BUGET_APP_260331_01(BG_BUGET_APP); use_clu_addr(0)
19 #SSEK2: [1, 112->9, 234]; scan_type(ASC), IDX_BG_BUGET_APP_260331_01(BG_BUGET_APP), is_global(0), scan_range[('230200000','2026','czbk',exp_cast(1),exp_cast(1),exp_cast(2)),('230200000','2026','czbk',exp_cast(1),exp_cast(1),exp_cast(2))]
Statistics
-----------------------------------------------------------------
0 data pages changed
0 undo pages changed
0 logical reads
0 physical reads
0 redo size
39572 bytes sent to client
64743 bytes received from client
2 roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
0 io wait time(ms)
76834 exec time(ms)
从上面的执行计划可以看出耗时已经到76s,但效率仍然不满足需求,计划显示关联方式已经变为INDEX JOIN SEMI JOIN,但BG_BUGET_APP还是做了被驱动表,正常应该让BG_BUGET_APP过滤出的小结果集作为驱动,而尝试过stat、order等调整表顺序的hint均不起作用,因此采用将exists改写为内连接的方式进行表顺序调整。
CREATE OR REPLACE VIEW VW_BDEPQ_CZBK
AS
SELECT c.GUID,
c.BT_TRANS_ID,
c.FIS_ID,
...
c.is_track
FROM (SELECT a.*, 1 AS type
FROM VW_BU_AN_TMP a
INNER JOIN (SELECT dept_code,mo_code,fis_year,count(*)
FROM bg_buget_app
WHERE status = 1
AND type = 1
AND funds_type='czbk'
AND is_deleted = 2
GROUP BY dept_code,mo_code,fis_year
) b
on a.dept_code = b.dept_code
AND a.mo_code = b.mo_code
AND a.fis_year = b.fis_year
WHERE a.batchno = 2
AND a.datatype = 8
AND a.is_bgt_detail = 1
AND a.fund_type_code like '1%'
AND a.is_deleted = 2
AND a.apply_up > 0
) c;
改写后发现顺序还是没有变化,于是使用Hint enable_in_value_list_opt(0)将IN LIST表达式从CONST VALUE LIST调整为SLCT条件进行过滤,Hint USE_NL_WITH_INDEX(BG_BUGET_APP,IDX_BG_P_UAL_04)手动调整驱动表顺序,最后执行耗时269ms。
SELECT /*+ enable_in_value_list_opt(0) optimizer_or_nbexp(2) view_pullup_flag(34) use_nl_with_index(bg_buget_app,IDX_BG_P_UAL_04)*/
*
FROM
(
SELECT
TMP_PAGE.*,
ROWNUM ROW_ID
FROM
(
SELECT
*
FROM
VW_BDEPQ_CZBK
WHERE
(
is_deleted = 2
AND batchno = 2
AND datatype = 8
AND is_assigned = 2
AND is_generate IN (0, 2)
)
AND type = 1
AND fis_year = '2026'
AND mo_code = '230200000'
AND 1 = 1
AND
(
manage_id IN ('7A82E872B225495E9BAFEA3E408F23CA', 'A2060B44328349708B87EFB609A29ZYS',..N多个..,'CC34B25E32D24F5EAE5C7D5E28609CEB')
)
AND
(
dep_id IN ('C5920C1D41D3EFF2E0531FE33C0ACFB9', 'C5920C1D41D7EFF2E0531FE33C0ACFB9',...,'A2060B44328349708B87EFB609A29ZYS')
)
AND
(
agency_id IN ('38996DAAEEBA4DF1A930AFF648F05FEF', 'C0FC4146B6D544E3B44E3673EA993A38',...,'68C34B194EFB4DC49DC63586AA11EE1B')
OR agency_id IN ('EF41301D99AF43A98A6E30095DD4041F', '967F9D3BD3B84587927B3F7A2BDE5BD3',...,'0D0FB9881D3D45008E535D213CC29680')
OR agency_id IN ('CA3A692C347A486D8FAB022C260DD445', '3FD2EB59B23C441FAD6218AE8AF58B36',...,'41D141B59BB247C79C34984172313F56')
OR agency_id IN ('4889192407384B809D99AEA8BC5E03D1', '8B5E11046D68489EB4325998C4894ED2', ...,'D15FDEF8F9DC4E6D8C0B39E4A7622E84')
)
AND
(
dept_id IN ('38996DAAEEBA4DF1A930AFF648F05FEF', 'C5A35C01207F461BBF30EF1455E8868D',...,'6AB7103DC31E4D6B926712D0F8B25042')
)
)
TMP_PAGE
)
WHERE
ROW_ID <= 20
AND ROW_ID > 0;
1 #NSET2: [333, 1->9, 10532]
2 #PRJT2: [333, 1->9, 10532]; exp_num(206), is_atom(FALSE)
3 #SLCT2: [333, 1->9, 10532]; DMTEMPVIEW_892586967.ROW_ID > var23
4 #PRJT2: [333, 20->9, 10532]; exp_num(206), is_atom(FALSE)
5 #RNSK: [333, 20->9, 10532];
6 #PRJT2: [333, 108->9, 10532]; exp_num(203), is_atom(FALSE)
7 #HAGR2: [333, 108->9, 10532]; grp_num(233), sfun_num(0), MEM_USED(1653KB), DISK_USED(0KB); slave_empty(0) keys(bg_buget_app.DEPT_CODE,...,BGT.ROWID)
8 #SLCT2: [332, 108->9, 10532]; (NOT(BGT.GOV_BGT_ECO_ID IS NULL) AND NOT(BGT.EXP_FUNC_ID IS NULL) AND NOT(BGT.DEP_BGT_ECO_ID IS NULL) AND NOT(BGT.BUDGET_LEVEL_ID IS NULL) AND BGT.IS_BGT_CARRYOVER IS NULL AND BGT.FUND_TYPE_CODE >= '1' AND BGT.FUND_TYPE_CODE < '2' AND BGT.IS_DELETED = var25 AND BGT.IS_ASSIGNED = var25 AND BGT.BATCHNO = var25 AND BGT.DATATYPE = var26 AND ... )
9 #NEST LOOP INDEX JOIN2: [332, 108->29001, 10532]
10 #BLKUP2: [1, 108->9, 282]; IDX_BG_BUGET_APP_260331_01(BG_BUGET_APP); use_clu_addr(0)
11 #SSEK2: [1, 108->9, 282]; scan_type(ASC), IDX_BG_BUGET_APP_260331_01(BG_BUGET_APP), is_global(0), scan_range[('230200000','2026','czbk',exp_cast(1),exp_cast(1),exp_cast(2)),('230200000','2026','czbk',exp_cast(1),exp_cast(1),exp_cast(2))]
12 #PARALLEL: [66, 1->29001, 240]; scan_type(EQU,EQU) range_sfun_opt(0)
13 #BLKUP2: [66, 1->29001, 240]; IDX_BG_P_UAL_04(BG_P_UAL); use_clu_addr(0)
14 #SLCT2: [66, 1->29001, 240]; (BGT.manage_id IN LIST AND BGT.AGENCY_ID IN LIST AND BGT.DEPT_ID IN LIST)
15 #SSEK2: [66, 1->29001, 240]; scan_type(ASC), IDX_BG_P_UAL_04(BG_P_UAL), is_global(1), scan_range[('230200000','2026',min,min,min),('230200000','2026',max,max,max))
Statistics
-----------------------------------------------------------------
0 data pages changed
0 undo pages changed
0 logical reads
2 physical reads
0 redo size
32522 bytes sent to client
64773 bytes received from client
1 roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
3 io wait time(ms)
269 exec time(ms)
文章
阅读量
获赞
