合并查询帮助 [英] Merge Query Help
问题描述
您好,我需要将一个小表(行数小于100,有时候是* b $ b甚至0行)合并到一个大表(大约40亿行)。我使用大表的PK
作为合并键,但合并会进行表扫描,所以它会永远运行
。
我检查了大桌子的桌子和PK统计数据,看起来很好。如果我需要检查其他东西,请告诉我。
以下是更多详情
小桌子 - 非分区(节点0)
大表 - 划分为7个逻辑节点(节点1 - 8)
查询:
合并到CARD.VIN_VEH_OPTNS作为使用(<登记/>
选择VEH_IDENT_NBR,OPTN_CD,ERR_FLAG
从ETL.STG_NEWS_VIN_VEH_OPTNS2
其中ERR_FLAG IN( '' N '', '' Y '')) AS B ON(A.VEH_IDENT_NBR =
B.VEH_IDENT_NBR和A.OPTN_CD = B.OPTN_CD AND
A.VEH_OPTN_CD_CSI = 13)
WHEN NOT MATCHED
,则
INSERT(VEH_IDENT_NBR,OPTN_CD,VEH_OPTN_CD_CSI,OPTN_INSTLT_TYP_CD,
PART_SERIAL_NBR,BROADCAST_CD,SOURCE_SYSTEM_CD,SOURCE_DT,
DWH_EFCTV_TIMSTM,DWH_UPD_TIMSTM)价值(B.VEH_IDENT_NBR,
B.OPTN_CD,13,''','''','''',34,当前时间戳,''
2007-02-20 10:39:53'',''2007-02-20 10:39:53' )
ELSE IGNORE
Reorgchk大表的统计数据如下
表统计:
SCHEMA NAME CARD OV NP FP ACTBLK
TSIZE F1 F2 F3 REORG
-------------------------- -------------------------------------------------- ------------
表:CARD.VIN_VEH_OPTNS
CARD VIN_VEH_OPTNS 4.6e + 09 0 3e + 07 3e + 07 - 4.96e
+11 0 97 97 ---
--------------------------- -------------------------------------------------- -----------
指数统计:
SCHEMA NAME CARD LEAF ELEAF LVLS ISIZE NDEL
KEYS F4 F5 F6 F7 F8 REORG
------------------------------- -------------------------------------------------- ----------------
表:CARD.VIN_VEH_OPTNS
CARD VVO_IX1 5e + 09 7e + 06 6916 4 10 13755 < br $>
1000 100 80 0 0 0 -----
CA. RD VVO_IX2 5e + 09 7e + 06 287 4 12 8e + 05 1e
+07 100 78 0 0 0 -----
SYSIBM SQL061028160336900 5e + 09 6e + 07 0 5 27 84 5e
+09 98 68 1 0 0 -----
---------------- -------------------------------------------------- -------------------------------
大表索引:
卡片VVO_IX1
D 1
+ DWH_EFCTV_TIMSTM
卡片VVO_IX2
D 2 + DWH_UPD_TIMSTM
+ VEH_OPTN_CD_CSI
SYSIBM SQL061028160336900
p 3 + VEH_IDENT_NBR + OPTN_CD
+ VEH_OPTN_CD_CSI
访问计划:
优化计划:
INSERT
(2)
/ \
DTQ表:
(3)CARD
| VIN_VEH_OPTNS
TBSCAN
(4)
|
TEMP
(5)
|
过滤器
(6)
|
过滤器>
(7)
|
TBSCAN
(8)
|
SORT
(9)
|
NLJOIN
(10)
/ \
TBSCAN TBSCAN
(11)(12)
| |
表:TEMP
ETL(13)
STG_NEWS_VIN_VEH_OPTNS2 |
BTQ
(14)
|
TBSCAN
(15)
|
表:
CARD
VIN_VEH_OPTNS
请分享您的想法。
Hello, I need to merge a small table (of rows less than 100,sometimes
even 0 rows) to a big table (of rows around 4 billion). I used the PK
of the big table as merge key but merge does a table scan so it runs
for ever.
I checked the table and PK statistics of the big table and it looks
good. Please let me know if I need to check for something else.
Here are more details
Small table - Non Partitioned ( Node 0)
Big table - Partitioned across 7 logical nodes (Node 1 - 8)
Query:
MERGE INTO CARD.VIN_VEH_OPTNS AS A USING (
SELECT VEH_IDENT_NBR, OPTN_CD, ERR_FLAG
FROM ETL.STG_NEWS_VIN_VEH_OPTNS2
WHERE ERR_FLAG IN (''N'', ''Y''))AS B ON (A.VEH_IDENT_NBR =
B.VEH_IDENT_NBR AND A.OPTN_CD =B.OPTN_CD AND
A.VEH_OPTN_CD_CSI =13)
WHEN NOT MATCHED
THEN
INSERT (VEH_IDENT_NBR, OPTN_CD, VEH_OPTN_CD_CSI, OPTN_INSTLT_TYP_CD,
PART_SERIAL_NBR, BROADCAST_CD, SOURCE_SYSTEM_CD, SOURCE_DT,
DWH_EFCTV_TIMSTM, DWH_UPD_TIMSTM)VALUES (B.VEH_IDENT_NBR,
B.OPTN_CD, 13, '''', '''', '''', 34, Current Timestamp, ''
2007-02-20 10:39:53'', ''2007-02-20 10:39:53'')
ELSE IGNORE
Reorgchk stats of big table is as below
Table statistics:
SCHEMA NAME CARD OV NP FP ACTBLK
TSIZE F1 F2 F3 REORG
----------------------------------------------------------------------------------------
Table: CARD.VIN_VEH_OPTNS
CARD VIN_VEH_OPTNS 4.6e+09 0 3e+07 3e+07 - 4.96e
+11 0 97 97 ---
----------------------------------------------------------------------------------------
Index statistics:
SCHEMA NAME CARD LEAF ELEAF LVLS ISIZE NDEL
KEYS F4 F5 F6 F7 F8 REORG
-------------------------------------------------------------------------------------------------
Table: CARD.VIN_VEH_OPTNS
CARD VVO_IX1 5e+09 7e+06 6916 4 10 13755
1000 100 80 0 0 0 -----
CARD VVO_IX2 5e+09 7e+06 287 4 12 8e+05 1e
+07 100 78 0 0 0 -----
SYSIBM SQL061028160336900 5e+09 6e+07 0 5 27 84 5e
+09 98 68 1 0 0 -----
-------------------------------------------------------------------------------------------------
Indexes on Big table:
CARD VVO_IX1
D 1
+DWH_EFCTV_TIMSTM
CARD VVO_IX2
D 2 +DWH_UPD_TIMSTM
+VEH_OPTN_CD_CSI
SYSIBM SQL061028160336900
P 3 +VEH_IDENT_NBR+OPTN_CD
+VEH_OPTN_CD_CSI
Access Plan:
Optimizer Plan:
INSERT
( 2)
/ \
DTQ Table:
( 3) CARD
| VIN_VEH_OPTNS
TBSCAN
( 4)
|
TEMP
( 5)
|
FILTER
( 6)
|
FILTER
( 7)
|
TBSCAN
( 8)
|
SORT
( 9)
|
NLJOIN
( 10)
/ \
TBSCAN TBSCAN
( 11) ( 12)
| |
Table: TEMP
ETL ( 13)
STG_NEWS_VIN_VEH_OPTNS2 |
BTQ
( 14)
|
TBSCAN
( 15)
|
Table:
CARD
VIN_VEH_OPTNS
Please share your thoughts.
推荐答案
Sam Durai写道:
Sam Durai wrote:
你好,我需要合并一个小表(行数少于100,有时是
甚至0行)到一张大桌子(大约40亿行)。我使用大表的PK
作为合并键,但合并会进行表扫描,所以它会永远运行
。
我检查了大桌子的桌子和PK统计数据,看起来很好。如果我需要检查其他东西,请告诉我。
以下是更多详情
小桌子 - 非分区(节点0)
大表 - 划分为7个逻辑节点(节点1 - 8)
查询:
合并到CARD.VIN_VEH_OPTNS作为使用(
SELECT VEH_IDENT_NBR,OPTN_CD,ERR_FLAG
FROM ETL.STG_NEWS_VIN_VEH_OPTNS2
WHERE ERR_FLAG IN(''N'',''Y'')) AS B ON(A.VEH_IDENT_NBR =
B.VEH_IDENT_NBR和A.OPTN_CD = B.OPTN_CD AND
A.VEH_OPTN_CD_CSI = 13)
WHEN NOT MATCHED
,则
INSERT(VEH_IDENT_NBR,OPTN_CD,VEH_OPTN_CD_CSI,OPTN_INSTLT_TYP_CD,
PART_SERIAL_NBR,BROADCAST_CD,SOURCE_SYSTEM_CD,SOURCE_DT,
DWH_EFCTV_TIMSTM,DWH_UPD_TIMSTM)价值(B.VEH_IDENT_NBR,
B.OPTN_CD,13,''','''','''',34,当前时间戳,' '
2007-02-20 10:39:53'',''2007-02-20 10:39:53'')
ELSE IGNORE >
Reorgchk大表的统计数据如下
表统计:
SCHEMA NAME CARD OV NP FP ACTBLK
TSIZE F1 F2 F3 REORG
------------------------------------ -------------------------------------------------- -
表:CARD.VIN_VEH_OPTNS
卡片VIN_VEH_OPTNS 4.6e + 09 0 3e + 07 3e + 07 - 4.96e
+11 0 97 97 ---
------------------------------------- -------------------------------------------------- -
指数统计:
SCHEMA NAME CARD LEAF ELEAF LVLS ISIZE NDEL
KEYS F4 F5 F6 F7 F8 REORG
----------------------------------------- -------------------------------------------------- ------
表:CARD.VIN_VEH_OPTNS
CARD VVO_IX1 5e + 0 9 7e + 06 6916 4 10 13755
1000 100 80 0 0 0 -----
CARD VVO_IX2 5e + 09 7e + 06 287 4 12 8e + 05 1e
+07 100 78 0 0 0 -----
SYSIBM SQL061028160336900 5e + 09 6e + 07 0 5 27 84 5e
+ 09 98 68 1 0 0 -----
------------------------------- -------------------------------------------------- ----------------
大桌索引:
CARD VVO_IX1
D 1
+ DWH_EFCTV_TIMSTM
卡片VVO_IX2
D 2 + DWH_UPD_TIMSTM
+ VEH_OPTN_CD_CSI
SYSIBM SQL061028160336900
P 3 + VEH_IDENT_NBR + OPTN_CD
+ VEH_OPTN_CD_CSI
访问计划:
优化计划:
INSERT
(2)
/ \
DTQ表:
(3)CARD
| VIN_VEH_OPTNS
TBSCAN
(4)
|
TEMP
(5)
|
过滤器
(6)
|
过滤器>
(7)
|
TBSCAN
(8)
|
SORT
(9)
|
NLJOIN
(10)
/ \
TBSCAN TBSCAN
(11)(12)
| |
表:TEMP
ETL(13)
STG_NEWS_VIN_VEH_OPTNS2 |
BTQ
(14)
|
TBSCAN
(15)
|
表:
CARD
VIN_VEH_OPTNS
请分享您的想法。
Hello, I need to merge a small table (of rows less than 100,sometimes
even 0 rows) to a big table (of rows around 4 billion). I used the PK
of the big table as merge key but merge does a table scan so it runs
for ever.
I checked the table and PK statistics of the big table and it looks
good. Please let me know if I need to check for something else.
Here are more details
Small table - Non Partitioned ( Node 0)
Big table - Partitioned across 7 logical nodes (Node 1 - 8)
Query:
MERGE INTO CARD.VIN_VEH_OPTNS AS A USING (
SELECT VEH_IDENT_NBR, OPTN_CD, ERR_FLAG
FROM ETL.STG_NEWS_VIN_VEH_OPTNS2
WHERE ERR_FLAG IN (''N'', ''Y''))AS B ON (A.VEH_IDENT_NBR =
B.VEH_IDENT_NBR AND A.OPTN_CD =B.OPTN_CD AND
A.VEH_OPTN_CD_CSI =13)
WHEN NOT MATCHED
THEN
INSERT (VEH_IDENT_NBR, OPTN_CD, VEH_OPTN_CD_CSI, OPTN_INSTLT_TYP_CD,
PART_SERIAL_NBR, BROADCAST_CD, SOURCE_SYSTEM_CD, SOURCE_DT,
DWH_EFCTV_TIMSTM, DWH_UPD_TIMSTM)VALUES (B.VEH_IDENT_NBR,
B.OPTN_CD, 13, '''', '''', '''', 34, Current Timestamp, ''
2007-02-20 10:39:53'', ''2007-02-20 10:39:53'')
ELSE IGNORE
Reorgchk stats of big table is as below
Table statistics:
SCHEMA NAME CARD OV NP FP ACTBLK
TSIZE F1 F2 F3 REORG
----------------------------------------------------------------------------------------
Table: CARD.VIN_VEH_OPTNS
CARD VIN_VEH_OPTNS 4.6e+09 0 3e+07 3e+07 - 4.96e
+11 0 97 97 ---
----------------------------------------------------------------------------------------
Index statistics:
SCHEMA NAME CARD LEAF ELEAF LVLS ISIZE NDEL
KEYS F4 F5 F6 F7 F8 REORG
-------------------------------------------------------------------------------------------------
Table: CARD.VIN_VEH_OPTNS
CARD VVO_IX1 5e+09 7e+06 6916 4 10 13755
1000 100 80 0 0 0 -----
CARD VVO_IX2 5e+09 7e+06 287 4 12 8e+05 1e
+07 100 78 0 0 0 -----
SYSIBM SQL061028160336900 5e+09 6e+07 0 5 27 84 5e
+09 98 68 1 0 0 -----
-------------------------------------------------------------------------------------------------
Indexes on Big table:
CARD VVO_IX1
D 1
+DWH_EFCTV_TIMSTM
CARD VVO_IX2
D 2 +DWH_UPD_TIMSTM
+VEH_OPTN_CD_CSI
SYSIBM SQL061028160336900
P 3 +VEH_IDENT_NBR+OPTN_CD
+VEH_OPTN_CD_CSI
Access Plan:
Optimizer Plan:
INSERT
( 2)
/ \
DTQ Table:
( 3) CARD
| VIN_VEH_OPTNS
TBSCAN
( 4)
|
TEMP
( 5)
|
FILTER
( 6)
|
FILTER
( 7)
|
TBSCAN
( 8)
|
SORT
( 9)
|
NLJOIN
( 10)
/ \
TBSCAN TBSCAN
( 11) ( 12)
| |
Table: TEMP
ETL ( 13)
STG_NEWS_VIN_VEH_OPTNS2 |
BTQ
( 14)
|
TBSCAN
( 15)
|
Table:
CARD
VIN_VEH_OPTNS
Please share your thoughts.
你/你可以在源代码中有重复吗?
SELECT VEH_IDENT_NBR,OPTN_CD,ERR_FLAG
来自ETL.STG_NEWS_VIN_VEH_OPTNS2
WHERE ERR_FLAG IN (''N'',''Y''))因为你没有在VEH_IDENT_NBR,OPTN_CD
上有一个独特的钥匙,所以B
我推荐SELECT VEH_IDENT_NBR,OPTN_CD,MAX(ERR_FLAG)
来自ETL.STG_NEWS_VIN_VEH_OPTNS2
WHERE ER R_FLAG IN(''N'',''Y'')
GROUP BY VEH_IDENT_NBR,OPTN_CD)AS B
你有关于小的统计数据吗?桌子?
干杯
Serge
-
Serge Rielau
DB2解决方案开发
IBM多伦多实验室
Do/Can you have dups in the source?
SELECT VEH_IDENT_NBR, OPTN_CD, ERR_FLAG
FROM ETL.STG_NEWS_VIN_VEH_OPTNS2
WHERE ERR_FLAG IN (''N'', ''Y''))AS B
assuming you don''t have a UNIQUE key on VEH_IDENT_NBR, OPTN_CD
I recommend SELECT VEH_IDENT_NBR, OPTN_CD, MAX(ERR_FLAG)
FROM ETL.STG_NEWS_VIN_VEH_OPTNS2
WHERE ERR_FLAG IN (''N'', ''Y'')
GROUP BY VEH_IDENT_NBR, OPTN_CD) AS B
Do you have statistics on the small table?
Cheers
Serge
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab
2月20日下午12:44,Serge Rielau< srie ... @ ca .ibm.comwrote:
On Feb 20, 12:44 pm, Serge Rielau <srie...@ca.ibm.comwrote:
Sam Durai写道:
Sam Durai wrote:
您好,我需要合并一个小表(行数少于100,有时候是b $ b甚至0行)到一张大表(大约40亿行)。我使用大表的PK
作为合并键但合并会进行表扫描,因此它会永远运行
。
Hello, I need to merge a small table (of rows less than 100,sometimes
even 0 rows) to a big table (of rows around 4 billion). I used the PK
of the big table as merge key but merge does a table scan so it runs
for ever.
我检查了大表的表格和PK统计数据,看起来很好。如果我需要检查其他内容,请告诉我。
I checked the table and PK statistics of the big table and it looks
good. Please let me know if I need to check for something else.
以下是更多详情
小表 - 非分区(节点0)
Big table - 划分为7个逻辑节点(节点1-8)
Here are more details
Small table - Non Partitioned ( Node 0)
Big table - Partitioned across 7 logical nodes (Node 1 - 8)
查询:
MERGE INTO CARD.VIN_VEH_OPTNS AS A使用(
SELECT VEH_IDENT_NBR,OPTN_CD,ERR_FLAG
来自ETL.STG_NEWS_VIN_VEH_OPTNS2
WHERE ERR_FLAG IN(''N'',''Y' '))AS B ON(A.VEH_IDENT_NBR =
B.VEH_IDENT_NBR和A.OPTN_CD = B.OPTN_CD AND
A.VEH_OPTN_CD_CSI = 13)
当NOT MATCHED
,则
INSERT(VEH_IDENT_NBR,OPTN_CD,VEH_OPTN_CD_CSI,OPTN_INSTLT_TYP_CD,
PART_SERIAL_NBR,BROADCAST_CD,SOURCE_SYSTEM_CD,SOURCE_DT,
DWH_EFCTV_TIMSTM,DWH_UPD_TIMSTM)价值(B.VEH_IDENT_NBR,
B.OPTN_CD,13,'''','' '','''',34,当前时间戳,''
2007-02-20 10:39:53'',''2007-02-20 10:39:53'' )
ELSE IGNORE
Query:
MERGE INTO CARD.VIN_VEH_OPTNS AS A USING (
SELECT VEH_IDENT_NBR, OPTN_CD, ERR_FLAG
FROM ETL.STG_NEWS_VIN_VEH_OPTNS2
WHERE ERR_FLAG IN (''N'', ''Y''))AS B ON (A.VEH_IDENT_NBR =
B.VEH_IDENT_NBR AND A.OPTN_CD =B.OPTN_CD AND
A.VEH_OPTN_CD_CSI =13)
WHEN NOT MATCHED
THEN
INSERT (VEH_IDENT_NBR, OPTN_CD, VEH_OPTN_CD_CSI, OPTN_INSTLT_TYP_CD,
PART_SERIAL_NBR, BROADCAST_CD, SOURCE_SYSTEM_CD, SOURCE_DT,
DWH_EFCTV_TIMSTM, DWH_UPD_TIMSTM)VALUES (B.VEH_IDENT_NBR,
B.OPTN_CD, 13, '''', '''', '''', 34, Current Timestamp, ''
2007-02-20 10:39:53'', ''2007-02-20 10:39:53'')
ELSE IGNORE
Reorgchk大表的统计数据如下
表统计:
SCHEMA NAME CARD OV NP FP ACTBLK
TSIZE F1 F2 F3 REORG
-------------- -------------------------------------------------- ------------------------
表:CARD.VIN_VEH_OPTNS
卡片VIN_VEH_OPTNS 4.6e + 09 0 3e + 07 3e + 07 - 4.96e
+11 0 97 97 ---
--------------- -------------------------------------------------- -----------------------
Reorgchk stats of big table is as below
Table statistics:
SCHEMA NAME CARD OV NP FP ACTBLK
TSIZE F1 F2 F3 REORG
----------------------------------------------------------------------------------------
Table: CARD.VIN_VEH_OPTNS
CARD VIN_VEH_OPTNS 4.6e+09 0 3e+07 3e+07 - 4.96e
+11 0 97 97 ---
----------------------------------------------------------------------------------------
指数统计:
Index statistics:
SCHEMA NAME CARD LEAF ELEAF LVLS ISIZE NDEL
KEYS F4 F5 F6 F7 F8 REORG
----------------------------------------- -------------------------------------------------- ------
表:CARD.VIN_VEH_OPTNS
卡片VVO_IX1 5e + 09 7e + 06 6916 4 10 13755
1000 100 80 0 0 0 -----
CARD VVO_IX2 5e + 09 7e + 06 287 4 12 8e + 05 1e
+07 100 78 0 0 0 ---- -
SYSIBM SQL061028160336900 5e + 09 6e + 07 0 5 27 84 5e
+09 98 68 1 0 0 -----
-------------------------------------------------- -----------------------------------------------
SCHEMA NAME CARD LEAF ELEAF LVLS ISIZE NDEL
KEYS F4 F5 F6 F7 F8 REORG
-------------------------------------------------------------------------------------------------
Table: CARD.VIN_VEH_OPTNS
CARD VVO_IX1 5e+09 7e+06 6916 4 10 13755
1000 100 80 0 0 0 -----
CARD VVO_IX2 5e+09 7e+06 287 4 12 8e+05 1e
+07 100 78 0 0 0 -----
SYSIBM SQL061028160336900 5e+09 6e+07 0 5 27 84 5e
+09 98 68 1 0 0 -----
-------------------------------------------------------------------------------------------------
大表索引:
CARD VVO_IX1
D 1
+ DWH_EFCTV_TIMSTM
CARD VVO_IX2
D 2 + DWH_UPD_TIMSTM
+ VEH_OPTN_CD_CSI
SYSIBM SQL061028160336900
P 3 + VEH_IDENT_NBR + OPTN_CD
+ VEH_OPTN_CD_CSI
Indexes on Big table:
CARD VVO_IX1
D 1
+DWH_EFCTV_TIMSTM
CARD VVO_IX2
D 2 +DWH_UPD_TIMSTM
+VEH_OPTN_CD_CSI
SYSIBM SQL061028160336900
P 3 +VEH_IDENT_NBR+OPTN_CD
+VEH_OPTN_CD_CSI
访问计划:
优化计划:
Access Plan:
Optimizer Plan:
INSERT
(2)
/ \\ *
DTQ表:
(3)CARD
| VIN_VEH_OPTNS
TBSCAN
(4)
|
TEMP
(5)
|
过滤器
(6)
|
过滤器>
(7)
|
TBSCAN
(8)
|
SORT
(9)
|
NLJOIN
(10)
/ \
TBSCAN TBSCAN
(11)(12)
| |
表:TEMP
ETL(13)
STG_NEWS_VIN_VEH_OPTNS2 |
BTQ
(14)
|
TBSCAN
(15)
|
表:
CARD
VIN_VEH_OPTNS
INSERT
( 2)
/ \
DTQ Table:
( 3) CARD
| VIN_VEH_OPTNS
TBSCAN
( 4)
|
TEMP
( 5)
|
FILTER
( 6)
|
FILTER
( 7)
|
TBSCAN
( 8)
|
SORT
( 9)
|
NLJOIN
( 10)
/ \
TBSCAN TBSCAN
( 11) ( 12)
| |
Table: TEMP
ETL ( 13)
STG_NEWS_VIN_VEH_OPTNS2 |
BTQ
( 14)
|
TBSCAN
( 15)
|
Table:
CARD
VIN_VEH_OPTNS
请分享您的想法。
Please share your thoughts.
你/你可以在源代码中有重复吗?
SELECT VEH_IDENT_NBR,OPTN_CD,ERR_FLAG
来自ETL .STG_NEWS_VIN_VEH_OPTNS2
WHERE ERR_FLAG IN(''N'',''Y''))B B B B B B B B b b b b b b b b b b b b b b b b b b b b b b b b b在VEH_IDENT_NBR键,OPTN_CD
我建议选择VEH_IDENT_NBR,OPTN_CD,MAX(ERR_FLAG)
。从ETL.STG_NEWS_VIN_VEH_OPTNS2
,其中ERR_FLAG IN( '' N'',''Y'')
GROUP BY VEH_IDENT_NBR,OPTN_CD)AS B
你有关于小桌子的统计数据吗?
干杯
Serge
-
Serge Rielau
DB2解决方案开发
IBM多伦多实验室
Do/Can you have dups in the source?
SELECT VEH_IDENT_NBR, OPTN_CD, ERR_FLAG
FROM ETL.STG_NEWS_VIN_VEH_OPTNS2
WHERE ERR_FLAG IN (''N'', ''Y''))AS B
assuming you don''t have a UNIQUE key on VEH_IDENT_NBR, OPTN_CD
I recommend SELECT VEH_IDENT_NBR, OPTN_CD, MAX(ERR_FLAG)
FROM ETL.STG_NEWS_VIN_VEH_OPTNS2
WHERE ERR_FLAG IN (''N'', ''Y'')
GROUP BY VEH_IDENT_NBR, OPTN_CD) AS B
Do you have statistics on the small table?
Cheers
Serge
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab
感谢您查看此问题。我们不能在
VEH_IDENT_NBR,OPTN_CD,ERR_FLAG上复制。我确实已经更新了小的
表中的统计数据,并且大多数时候这个表都是空的,所以我不确定
Unique Index是否会有所帮助。
Thanks for looking into the issue. We cannot have duplicates on
VEH_IDENT_NBR, OPTN_CD, ERR_FLAG. I do have updated stats on the small
table and most of the time this table would be empty so I''m not sure
whether Unique Index would be of help.
Sam Durai写道:
Sam Durai wrote:
感谢您查看此问题。我们不能在
VEH_IDENT_NBR,OPTN_CD,ERR_FLAG上复制。我确实已经更新了小的
表中的统计数据,并且大多数时候这个表都是空的,所以我不确定
Unique Index是否会有所帮助。
Thanks for looking into the issue. We cannot have duplicates on
VEH_IDENT_NBR, OPTN_CD, ERR_FLAG. I do have updated stats on the small
table and most of the time this table would be empty so I''m not sure
whether Unique Index would be of help.
不是所有三个,但这没有帮助。 Imporatnt是否你可以
有两个(VEH_IDENT_NBR,OPTN_CD)和不同的ERR_FLAG。
,因为你加入了(VEH_IDENT_NBR,OPTN_CD)。
无论如何:尝试重写,看看它对计划的作用。应该让b $ b变得简单得多。 JOIN上方的所有goo都应该消失(并且
希望在此过程中删除tablecan)。
-
Serge Rielau
DB2解决方案开发
IBM多伦多实验室
Not on all three, but that doesn''t help. Imporatnt is whether you could
have two (VEH_IDENT_NBR, OPTN_CD) with different ERR_FLAG.
because you join on (VEH_IDENT_NBR, OPTN_CD).
Anyway: try my rewrite and see what it does to the plan. It should
become much simpler. All the goo above the JOIN should go away (and
hopefully in the process remove the tablescan).
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab
这篇关于合并查询帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!