delete语句跑了3个小时分析以及关于并行的一些知识
=====================START====================================
闲来无事,看了下数据库跑的long running sql,
SQL> /
1708 51125 1 61jv5qy7mandd 10622 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) db file scattered read
382 22079 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
5 9223 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
70 62839 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
139 299 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
202 23755 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
203 541 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
260 38107 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
322 13893 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
324 27407 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
454 75 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
515 199 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
638 6453 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
705 1439 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
764 613 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
1896 35227 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
2152 43367 1 61jv5qy7mandd 10621 infaadm inf-p-va-01.va2.b2c.nike.com
DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
pmdtm@inf-p-va-01.va2.b2c.nike.com (TNS V1-V3) PX Deq: Table Q Normal
看到这条delete语句跑了3hours左右,于是想看看为啥跑这么慢,因为从v$session查出来的这句sql是有很多sid的,说明有很多session,开了并行在delete,那为何还跑得这么慢。
并且得看看并行hint在语句中我没看到,是表的并行还是应用连过来设的并行还是什么?
先大致分析下:
Sql text:DELETE FROM FINOPRPT.FIN_ORD_DTL WHERE ORD_LIN_ID IN (SELECT ORD_LIN_ID FROM FINOPSTG.ORDER_LINE_FINRPT_STG)
SQL> SELECT px.QCSID,px.SID "SID", p.PID, p.SPID "SPID", px.INST_ID "Inst",s.status,s.username,s.machine,to_char(logon_time,'yyyymmdd hh24:mi:ss') as loggon_time,s.last_call_et,
2 px.SERVER_GROUP "Group", px.SERVER_SET "Set",
3 px.DEGREE "Degree", px.REQ_DEGREE "Req Degree", w.event "Wait Event"
FROM GV$SESSION s, GV$PX_SESSION px, GV$PROCESS p, GV$SESSION_WAIT w
WHERE s.sid (+) = px.sid AND s.inst_id (+) = px.inst_id AND
s.sid = w.sid (+) AND s.inst_id = w.inst_id (+) AND
s.paddr = p.addr (+) AND s.inst_id = p.inst_id (+) and px.qcsid=1708
ORDER BY DECODE(px.QCINST_ID, NULL, px.INST_ID, px.QCINST_ID), px.QCSID,
DECODE(px.SERVER_GROUP, NULL, 0, px.SERVER_GROUP), px.SERVER_SET, px.INST_ID; 4 5 6 7 8 9
QCSID SID PID SPID Inst STATUS USERNAME MACHINE LOGGON_TIME LAST_CALL_ET Group Set Degree Req Degree Wait Event
---------- ---------- ---------- ------------------------ ---------- -------- ------------------------------ ---------------------------------------------------------------- ----------------- ------------ ---------- ---------- ---------- ---------- ----------------------------------------------------------------
1708 1708 75 25545 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:23 11875 db file scattered read
1708 139 50 3991 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 202 51 3993 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 260 52 3995 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 322 53 3997 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 382 54 3999 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 454 55 4001 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 5 48 3987 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 70 49 3989 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 764 108 25561 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 705 107 25559 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 638 106 25557 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 515 104 25555 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 324 101 25553 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 203 99 25551 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 2152 82 25549 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 1896 78 25547 1 ACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 1 16 48 PX Deq: Table Q Normal
1708 2211 131 6265 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 2397 134 6271 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 1022 112 6203 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 1078 113 6205 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 1142 114 6207 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 1202 115 6214 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 1266 116 6226 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 2155 130 6263 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 574 105 6257 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 1963 127 6255 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 387 102 6243 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 1898 126 6253 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 1835 125 6251 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 1767 124 6249 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 1333 117 6233 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
1708 2276 132 6267 1 INACTIVE INFA_USR inf-p-va-01.va2.b2c.nike.com 20161217 09:30:24 11874 1 2 16 48 PX Deq: Execution Msg
33 rows selected.
看下执行计划,把in语句转换成hash join right semi操作,这样相当于两张表做hash join了,表的获取是走全表扫描和Fast full ind scan,这两个操作正好都能充分利用并行进程。
所以执行计划暂时没看出有啥毛病。
Plan hash value: 1653143170
-------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |
-------------------------------------------------------------------------------------------------------------------------------------
| 0 | DELETE STATEMENT | | | | 349K(100)| | | | |
| 1 | DELETE | FIN_ORD_DTL | | | | | | | |
| 2 | PX COORDINATOR | | | | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10002 | 5950K| 283M| 349K (1)| 02:14:00 | Q1,02 | P->S | QC (RAND) |
|* 4 | HASH JOIN RIGHT SEMI | | 5950K| 283M| 349K (1)| 02:14:00 | Q1,02 | PCWP | |
| 5 | PX RECEIVE | | 5950K| 141M| 6476 (1)| 00:02:29 | Q1,02 | PCWP | |
| 6 | PX SEND HASH | :TQ10001 | 5950K| 141M| 6476 (1)| 00:02:29 | Q1,01 | P->P | HASH |
| 7 | PX BLOCK ITERATOR | | 5950K| 141M| 6476 (1)| 00:02:29 | Q1,01 | PCWC | |
|* 8 | INDEX FAST FULL SCAN| ORDER_LINE_FINRPT_STG_I3 | 5950K| 141M| 6476 (1)| 00:02:29 | Q1,01 | PCWP | |
| 9 | BUFFER SORT | | | | | | Q1,02 | PCWC | |
| 10 | PX RECEIVE | | 40M| 969M| 342K (1)| 02:11:28 | Q1,02 | PCWP | |
| 11 | PX SEND HASH | :TQ10000 | 40M| 969M| 342K (1)| 02:11:28 | | S->P | HASH |
| 12 | TABLE ACCESS FULL | FIN_ORD_DTL | 40M| 969M| 342K (1)| 02:11:28 | | | |
-------------------------------------------------------------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
1 - SEL$3BA1AD7C
8 - SEL$3BA1AD7C / ORDER_LINE_FINRPT_STG@SEL$1
12 - SEL$3BA1AD7C / FIN_ORD_DTL@DEL$1
Predicate Information (identified by operation id):
---------------------------------------------------
4 - access("ORD_LIN_ID"="ORD_LIN_ID")
8 - access(:Z>=:Z AND :Z<=:Z)
select table_name, owner,num_rows, blocks, last_analyzed,partitioned
from dba_tables
where table_name in ('FIN_ORD_DTL', 'ORDER_LINE_FINRPT_STG');
TABLE_NAME OWNER NUM_ROWS BLOCKS LAST_ANAL PAR
------------------------------ ------------------------------ ---------- ---------- --------- ---
ORDER_LINE_FINRPT_STG FINOPSTG 5950720 608238 11-DEC-16 NO
FIN_ORD_DTL FINOPRPT 40662196 1702912 24-AUG-16 NO
其实两张表join,正常并行全表扫描+并行index fast full index scan会很快,五分钟左右能完成,不至于跑3hours还没结束。
SQL> ho date
Sat Dec 17 13:09:09 UTC 2016
为什么执行计划有并行,实际一直都是单线程工作,因为从如下OEM可以看到sql从开始跑的时候就一直是单线程工作,
为什么gv$session看到了有parallel processes,执行计划也是并行操作,而OEM看到的其实一直都是单线程,并没有并行
先来看看表的并行度: select table_name,degree from dba_tables where table_name in ('FIN_ORD_DTL', 'ORDER_LINE_FINRPT_STG');
TABLE_NAME DEGREE
------------------------------ ----------------------------------------
FIN_ORD_DTL 1
ORDER_LINE_FINRPT_STG 1
在sql级别没有加parallel hint,在表级别degree也是1,那么并行是哪里来的?
并行度可以通过以下三种方式来设定:
1、使用Hint 指定并行度。
2、使用alter session force parallel 设定并行度。
3、使用SQL中引用的表或者索引上设定的并行度,原则上Oracle 使用这些对象中并行度最高的那个值作为当前执行的并行度。
三种方式任意一种就可以使并行生效,如果多种方式同时存在的话,则优先级顺序是:hint -> alter session -> table/index degree
那么这个并行出现的可能性只有两种了:
- 应用连过来设的session级别的并行度
- V$session及执行计划的’缺陷’
另外自己还看了下数据库设置的parallel相关参数,对如下这个参数关注了一下,
https://docs.oracle.com/cd/E18283_01/server.112/e16541/parallel005.htm
PARALLEL_FORCE_LOCAL
This parameter specifies whether a SQL statement executed in parallel is restricted to a single instance in an Oracle RAC environment. By setting this parameter to TRUE, you restrict the scope of the parallel server processed to the single Oracle RAC instance where the query coordinator is running.
The recommended value for the PARALLEL_FORCE_LOCAL parameter is FALSE.
这个参数在BI库里设成false,就是说BI 6个节点,即使我在node3上sql开了并行,也仅限于node3上,不会借助其他node(这个参数在这个案例没啥影响,只是捎带提下)
PARALLEL_DEGREE_POLICY
PARALLEL_DEGREE_POLICY specifies whether or not automatic degree of
Parallelism, statement queuing, and in-memory parallel execution will be enabled.Values:
- MANUAL: Disables automatic degree of parallelism, statement
queuing, and in-memory parallel execution. This reverts the behavior of
parallel execution to what it was prior to Oracle Database 11g Release 2
(11.2). This is the default. - LIMITED: Enables automatic degree of parallelism for some
statements but statement queuing and in-memory Parallel Execution are disabled.
Automatic degree of parallelism is only applied to those statements that access
tables or indexes decorated explicitly with the DEFAULT degree of parallelism
using the PARALLEL clause. Statements that do not access any tables or indexes
decorated with the DEFAULT degree of parallelism will retain the MANUAL
behavior. - AUTO: Enables automatic degree of parallelism, statement queuing,
and in-memory parallel execution.
生产的参数如下:
parallel_degree_policy string MANUAL
parallel_force_local boolean TRUE
看了下跟数据库的参数设置也没关系。
所以接下来的思路,或者办法就是:
跟应用确认,是不是session级别设置的,要么没设置,那么v$session和执行计划的信息就是错的,要么设置了,那么为什么一直是单线程工作了,在这里是可以用到并行去做table
full scan和index
fast full scan这两个操作的,那么可以分析下并行的资源是不是够,当时自己没想到这一点,可能并行资源全都in use了!这是目前唯一能想出来的原因了。
所以以后分析的时候还顺便分析下并行的资源使用
SELECT * FROM
V$PX_PROCESS;可以看到还有多少available的parallel process
select * from V$PX_PROCESS_SYSSTAT;也可以看
当然后续的文章还会说明下关于并行的consumer/producer模型,parallel wait event等知识。
======================ENDED========================================
delete语句跑了3个小时分析以及关于并行的一些知识的更多相关文章
- MySQL DELETE语句和TRUNCATE TABLE语句的区别
MySQL DELETE语句和TRUNCATE TABLE语句的区别 2010-10-08 16:05 佚名 互联网 字号:T | T 在MySQL数据库中,DELETE语句和TRUNCATE TAB ...
- Sql Server系列:Delete语句
数据的删除将删除表的部分或全部记录,删除时可以指定删除条件从而删除一条或多条记录.如果不指定删除条件,DELETE语句将删除表中全部的记录,清空数据表. 1 DELETE语法 [ WITH <c ...
- SQL DELETE 语句
DELETE 语句用于删除表中的行. 语法 DELETE FROM 表名称 WHERE 列名称 = 值 Person: LastName FirstName Address City Gates Bi ...
- FP 某段SQL语句执行时间超过1个小时,并报错:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展
一.出现如下两个错误:1.某一段SQL语句执行时间超过1个小时:2.一个小时后,提示如下错误:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展 temp 段ORA-065 ...
- 如何判断一条sql(update,delete)语句是否执行成功
如何判断一条sql(update,delete)语句是否执行成功 catch (SQLException e) { } catch不到错误应该就成功了. ============== ...
- mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干
1.mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干 2.一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性).Con ...
- delete语句与reference约束 FK_subplan_job_id冲突问题,导致job无法删除解决办法
在SQL Server 2008上删除已运行维护计划后,维护计划job没有自动删除掉,手工再删除维护计划job,提示删除失败. 错误现象:delete 语句与 reference 约束"F ...
- 删除作业计划出错(DELETE语句与 REFERENCE约束"FK_subplan_job_id"冲突。)
删除作业计划出错(DELETE语句与 REFERENCE约束"FK_subplan_job_id"冲突.) use msdb select * from sysmaintplan_plans --查看 ...
- oracle数据库删除数据Delete语句和Truncate语句的对比
oracle数据库删除数据Delete语句和Truncate语句的对比 当表中的数据不需要时,则应该删除该数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分 ...
随机推荐
- Oracle 11gR2 RAC修改监听默认端口
一.修改SCAN listener port 1.1 修改SCAN listener port 1.2 重启SCAN listener生效新端口 1.3 确认更改 二.修改Listener Ports ...
- App Widget简单应用
首先后台进程创建一个PendingIntent对象,其中PendingIntent中包含一个真正的Intent,创建完成后将此PendingIntent对象交给桌面控件所在的进程,当用户点击桌面控件或 ...
- 如何将MyEclipse项目导入eclipse
我们经常会在网上下载一些开源项目,或者从别的地方迁移一些项目进来,但经常会发现导入后各种报错.这是初学java肯定会遇到的问题,本文对一些常见的处理方案做一个总结.(本文将MyEclipse项目导入e ...
- C#使用iTextSharp给PDF添加水印
代码: /// <summary> /// 添加普通偏转角度文字水印 /// </summary> public static void SetWatermark(string ...
- Web API与文件操作
前段时间,一直有练习ASP.NET MVC与Web API交互,接下来,Insus.NET再做一些相关的练习,Web API与文件操作,如POST文件至Web API,更新或是删除等. 不管怎样,先在 ...
- 基于DevExpress的Winform程序安装包的制作
在我们做系统开发的时候,都会面临一个安装包制作的问题,如何把我们做好的系统,通过安装包工具整合成一个安装包给客户进行安装.安装包的优势就是一步步安装就可以了,不用复制一大堆文件给客户,还怕缺少那个文件 ...
- C#~异步编程再续~大叔所理解的并行编程(Task&Parallel)
返回目录 并行这个概念出自.net4.5,它被封装在System.Threading.Tasks命名空间里,主要提供一些线程,异步的方法,或者说它是对之前Thread进行的二次封装,为的是让开发人员更 ...
- webapi修改tt模板给字段添加JsonIgnore特性解决转换json循环引用问题
0.问题描述 EF生成的model带有导航属性,则json序列化会报循环引用错误,尝试如下 protected void Application_Start() { GlobalConfigurati ...
- SharedPreferences漏洞, 无法避免,所以不要在里面存储敏感信息
1. SharedPreferences漏洞, 无法避免,所以不要在里面存储敏感信息2. 数据存储检测,content://com.starcor.launcherInfo/deviceInfo&q ...
- javaweb优化
http://blog.csdn.net/jiangzhaobao/article/details/8003244