利用no_merge优化
SQL> select a.unit3_code 机构编码,
2 a.unit3_name 机构名称,
3 a.dept1_code 部门编码,
4 a.dept1_name 部门名称,
5 a.mgr_code 客户经理编码,
6 a.mgr_name 客户经理名称,
7 b.base 基数
8 from s_pm_mgr_dept_rela a,
9 (select t2.mgr_code, sum(T1.avg * t2.share_rate / 100) / 10000 base
10 from (select acct_no_pk,
11 (SUM(DECODE(T1.DATA_DATE, '20121217', T1.Y_ADD_AF, 0)) -
12 SUM(DECODE(T1.DATA_DATE, '20120101', T1.Y_ADD_AF, 0)) +
13 SUM(DECODE(T1.DATA_DATE,
14 '20120101',
15 T1.ADJUST_AMT_AF,
16 0))) /
17 PKG_UF_BANK.FN_GETDAYS('20120101', '20121217') AVG
18 from t_pm_acct_dtl_af t1
19 where 1 = 1
20 and t1.data_date in ('20120101', '20121217')
21 and acct_flag = 'DEPOSIT'
22 and t1.cur_code = 1
23 and substr(flag, 1, 1) = '1'
24 and substr(flag, 4, 1) = '1'
25 and t1.dept1_code <> '999999999'
26 group by acct_no_pk) t1,
27 (select t3.acct_no_pk as acct_no_pk,
28 NVL(t2.cm_code, nvl(T3.MGR_CODE, 'xxxxxx')) as mgr_code,
29 decode(T1.SHARE_RATE, '', 100, T1.SHARE_RATE) as share_rate
30 from t_pm_acct_dtl t3,
31 bap_cm_account t1,
32 bap_cm_psndoc t2,
33 bap_nctobapdept t4
34 where 1 = 1
35 and t1.account(+) = t3.acct_no_pk
36 and decode(t1.seal_flag(+), '', 'N', t1.seal_flag(+)) = 'N'
37 and replace(t1.effect_date(+), '-') <= '20121217'
38 and replace(decode(t1.seal_date(+),
39 '',
40 pkg_uf_bank.FN_GETNEXTDAY('20121217',
41 'M'),
42 t1.seal_date(+)),
43 '-') > '20121217'
44 and decode(t1.dr(+), '', 0, t1.dr(+)) = 0
45 and t1.pk_cm_psndoc = t2
46 .pk_cm_psndoc(+)
47 and decode(t2.dr(+), '', 0, t2.dr(+)) = 0
48 and t2.pk_dept = t4.pk_nctobapdept(+)
49 and t4.deptcode(+) <> '999999999'
50 and t3.data_date = '20121217'
51 and t3.acct_flag = 'DEPOSIT') t2
52 Where t1.acct_no_pk = t2.acct_no_pk
53 group by t2.mgr_code) b
54 where a.mgr_code = b.mgr_code
55 and a.dept1_code <> '999999999'
56 and a.dept1_code = '18605'
57 and a.unit3_code = '18601'
58 and 1 = 1
59 and a.mgr_code IN ('00798', '00817')
60 order by 1, 3, 5
61 ; Execution Plan
----------------------------------------------------------
Plan hash value: 1749794338 -------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
-------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 288 | 11414 (15)| 00:00:33 | | |
| 1 | SORT GROUP BY | | 1 | 288 | 11414 (15)| 00:00:33 | | |
|* 2 | HASH JOIN OUTER | | 1 | 288 | 11413 (15)| 00:00:33 | | |
|* 3 | FILTER | | | | | | | |
| 4 | NESTED LOOPS OUTER | | 1 | 258 | 11408 (15)| 00:00:33 | | |
| 5 | NESTED LOOPS OUTER | | 1 | 207 | 11407 (15)| 00:00:33 | | |
| 6 | NESTED LOOPS | | 1 | 139 | 11402 (15)| 00:00:33 | | |
| 7 | MERGE JOIN CARTESIAN | | 1 | 98 | 11398 (15)| 00:00:33 | | |
| 8 | INLIST ITERATOR | | | | | | | |
|* 9 | TABLE ACCESS BY INDEX ROWID | S_PM_MGR_DEPT_RELA | 1 | 63 | 3 (0)| 00:00:01 | | |
|* 10 | INDEX RANGE SCAN | MGR_DEPT_RELA_IDX5 | 1 | | 2 (0)| 00:00:01 | | |
| 11 | BUFFER SORT | | 93 | 3255 | 11396 (15)| 00:00:33 | | |
| 12 | VIEW | | 93 | 3255 | 11396 (15)| 00:00:33 | | |
| 13 | HASH GROUP BY | | 93 | 5487 | 11396 (15)| 00:00:33 | | |
| 14 | PARTITION LIST INLIST | | 93 | 5487 | 11395 (15)| 00:00:33 |KEY(I) |KEY(I) |
|* 15 | TABLE ACCESS FULL | T_PM_ACCT_DTL_AF | 93 | 5487 | 11395 (15)| 00:00:33 |KEY(I) |KEY(I) |
| 16 | PARTITION LIST SINGLE | | 1 | 41 | 4 (0)| 00:00:01 | KEY | KEY |
|* 17 | TABLE ACCESS BY LOCAL INDEX ROWID| T_PM_ACCT_DTL | 1 | 41 | 4 (0)| 00:00:01 | 352 | 352 |
|* 18 | INDEX RANGE SCAN | ACCT_DTL_IDX1 | 2 | | 2 (0)| 00:00:01 | 352 | 352 |
|* 19 | TABLE ACCESS BY INDEX ROWID | BAP_CM_ACCOUNT | 1 | 68 | 5 (0)| 00:00:01 | | |
|* 20 | INDEX RANGE SCAN | IDX_BAP_CM_ACCOUNT | 2 | | 2 (0)| 00:00:01 | | |
|* 21 | TABLE ACCESS BY INDEX ROWID | BAP_CM_PSNDOC | 1 | 51 | 1 (0)| 00:00:01 | | |
|* 22 | INDEX UNIQUE SCAN | PK_BAP_CM_PSNDOC | 1 | | 0 (0)| 00:00:01 | | |
|* 23 | TABLE ACCESS FULL | BAP_NCTOBAPDEPT | 609 | 18270 | 4 (0)| 00:00:01 | | |
------------------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 2 - access("T2"."PK_DEPT"="T4"."PK_NCTOBAPDEPT"(+))
3 - filter("A"."MGR_CODE"=NVL("T2"."CM_CODE",NVL("T3"."MGR_CODE",'xxxxxx')) AND
(NVL("T2"."CM_CODE",NVL("T3"."MGR_CODE",'xxxxxx'))='00798' OR
NVL("T2"."CM_CODE",NVL("T3"."MGR_CODE",'xxxxxx'))='00817'))
9 - filter("A"."DEPT1_CODE"='18605' AND "A"."DEPT1_CODE"<>'999999999')
10 - access("A"."UNIT3_CODE"='18601' AND ("A"."MGR_CODE"='00798' OR "A"."MGR_CODE"='00817'))
15 - filter("ACCT_FLAG"='DEPOSIT' AND SUBSTR("FLAG",1,1)='1' AND SUBSTR("FLAG",4,1)='1' AND
"T1"."DEPT1_CODE"<>'999999999' AND TO_NUMBER("T1"."CUR_CODE")=1)
17 - filter("T3"."ACCT_FLAG"='DEPOSIT')
18 - access("T3"."DATA_DATE"=20121217 AND "T1"."ACCT_NO_PK"="T3"."ACCT_NO_PK")
19 - filter(DECODE("T1"."SEAL_FLAG"(+),'','N',"T1"."SEAL_FLAG"(+))='N' AND
REPLACE("T1"."EFFECT_DATE"(+),'-')<='20121217' AND DECODE(TO_CHAR("T1"."DR"(+)),'',0,"T1"."DR"(+))=0 AND
REPLACE(DECODE("T1"."SEAL_DATE"(+),'',"PKG_UF_BANK"."FN_GETNEXTDAY"('20121217','M'),"T1"."SEAL_DATE"(+)),'-')>'20121217
')
20 - access("T1"."ACCOUNT"(+)="T3"."ACCT_NO_PK")
21 - filter(DECODE(TO_CHAR("T2"."DR"(+)),'',0,"T2"."DR"(+))=0)
22 - access("T1"."PK_CM_PSNDOC"="T2"."PK_CM_PSNDOC"(+))
23 - filter("T4"."DEPTCODE"(+)<>'999999999') Statistics
----------------------------------------------------------
214 recursive calls
0 db block gets
11912102 consistent gets
122578 physical reads
13516 redo size
1064 bytes sent via SQL*Net to client
1625 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
2 rows processed
select count(*) from S_PM_MGR_DEPT_RELA A where ("A"."UNIT3_CODE"='18601' AND ("A"."MGR_CODE"='00798' OR "A"."MGR_CODE"='00817'))
and ("A"."DEPT1_CODE"='18605' AND "A"."DEPT1_CODE"<>'999999999');
---返回2条记录 (select acct_no_pk,
11 (SUM(DECODE(T1.DATA_DATE, '20121217', T1.Y_ADD_AF, 0)) -
12 SUM(DECODE(T1.DATA_DATE, '20120101', T1.Y_ADD_AF, 0)) +
13 SUM(DECODE(T1.DATA_DATE,
14 '20120101',
15 T1.ADJUST_AMT_AF,
16 0))) /
17 PKG_UF_BANK.FN_GETDAYS('20120101', '20121217') AVG
18 from t_pm_acct_dtl_af t1
19 where 1 = 1
20 and t1.data_date in ('20120101', '20121217')
21 and acct_flag = 'DEPOSIT'
22 and t1.cur_code = 1
23 and substr(flag, 1, 1) = '1'
24 and substr(flag, 4, 1) = '1'
25 and t1.dept1_code <> '999999999'
26 group by acct_no_pk) t1 (select t3.acct_no_pk as acct_no_pk,
28 NVL(t2.cm_code, nvl(T3.MGR_CODE, 'xxxxxx')) as mgr_code,
29 decode(T1.SHARE_RATE, '', 100, T1.SHARE_RATE) as share_rate
30 from t_pm_acct_dtl t3,
31 bap_cm_account t1,
32 bap_cm_psndoc t2,
33 bap_nctobapdept t4
34 where 1 = 1
35 and t1.account(+) = t3.acct_no_pk
36 and decode(t1.seal_flag(+), '', 'N', t1.seal_flag(+)) = 'N'
37 and replace(t1.effect_date(+), '-') <= '20121217'
38 and replace(decode(t1.seal_date(+),
39 '',
40 pkg_uf_bank.FN_GETNEXTDAY('20121217',
41 'M'),
42 t1.seal_date(+)),
43 '-') > '20121217'
44 and decode(t1.dr(+), '', 0, t1.dr(+)) = 0
45 and t1.pk_cm_psndoc = t2
46 .pk_cm_psndoc(+)
47 and decode(t2.dr(+), '', 0, t2.dr(+)) = 0
48 and t2.pk_dept = t4.pk_nctobapdept(+)
49 and t4.deptcode(+) <> '999999999'
50 and t3.data_date = '20121217'
51 and t3.acct_flag = 'DEPOSIT') t2 | 12 | VIEW | | 93 | 3255 | 11396 (15)| 00:00:33 | | |
| 13 | HASH GROUP BY | | 93 | 5487 | 11396 (15)| 00:00:33 | | |
| 14 | PARTITION LIST INLIST | | 93 | 5487 | 11395 (15)| 00:00:33 |KEY(I) |KEY(I) |
|* 15 | TABLE ACCESS FULL | T_PM_ACCT_DTL_AF | 93 | 5487 | 11395 (15)| 00:00:33 |KEY(I) |KEY(I) |
| 16 | PARTITION LIST SINGLE | | 1 | 41 | 4 (0)| 00:00:01 | KEY | KEY |
|* 17 | TABLE ACCESS BY LOCAL INDEX ROWID| T_PM_ACCT_DTL | 1 | 41 | 4 (0)| 00:00:01 | 352 | 352 |
|* 18 | INDEX RANGE SCAN | ACCT_DTL_IDX1 | 2 | | 2 (0)| 00:00:01 | 352 | 352 |
|* 19 | TABLE ACCESS BY INDEX ROWID | BAP_CM_ACCOUNT | 1 | 68 | 5 (0)| 00:00:01 | | |
|* 20 | INDEX RANGE SCAN | IDX_BAP_CM_ACCOUNT | 2 | | 2 (0)| 00:00:01 | | |
|* 21 | TABLE ACCESS BY INDEX ROWID | BAP_CM_PSNDOC | 1 | 51 | 1 (0)| 00:00:01 | | |
|* 22 | INDEX UNIQUE SCAN | PK_BAP_CM_PSNDOC | 1 | | 0 (0)| 00:00:01 | | |
|* 23 | TABLE ACCESS FULL | BAP_NCTOBAPDEPT | 609 | 18270 | 4 (0)| 00:00:01 | | |
------------------------------------------------------------------------------------------------------------------------------- 可以看到t1视图没有展开,但是t2视图确被展开了,尝试让t2视图不展开 SQL> select a.unit3_code 机构编码,
2 a.unit3_name 机构名称,
3 a.dept1_code 部门编码,
4 a.dept1_name 部门名称,
5 a.mgr_code 客户经理编码,
6 a.mgr_name 客户经理名称,
7 b.base 基数
8 from s_pm_mgr_dept_rela a,
9 (select /*+ no_merge(t2)*/ t2.mgr_code, sum(T1.avg * t2.share_rate / 100) / 10000 base
10 from (select acct_no_pk,
11 (SUM(DECODE(T1.DATA_DATE, '20121217', T1.Y_ADD_AF, 0)) -
12 SUM(DECODE(T1.DATA_DATE, '20120101', T1.Y_ADD_AF, 0)) +
13 SUM(DECODE(T1.DATA_DATE,
14 '20120101',
15 T1.ADJUST_AMT_AF,
16 0))) /
17 PKG_UF_BANK.FN_GETDAYS('20120101', '20121217') AVG
18 from t_pm_acct_dtl_af t1
19 where 1 = 1
20 and t1.data_date in ('20120101', '20121217')
21 and acct_flag = 'DEPOSIT'
22 and t1.cur_code = 1
23 and substr(flag, 1, 1) = '1'
24 and substr(flag, 4, 1) = '1'
25 and t1.dept1_code <> '999999999'
26 group by acct_no_pk) t1,
27 (select
28 t3.acct_no_pk as acct_no_pk,
29 NVL(t2.cm_code, nvl(T3.MGR_CODE, 'xxxxxx')) as mgr_code,
30 decode(T1.SHARE_RATE, '', 100, T1.SHARE_RATE) as share_rate
31 from t_pm_acct_dtl t3,
32 bap_cm_account t1,
33 bap_cm_psndoc t2,
34 bap_nctobapdept t4
35 where 1 = 1
36 and t1.account(+) = t3.acct_no_pk
37 and decode(t1.seal_flag(+), '', 'N', t1.seal_flag(+)) = 'N'
38 and replace(t1.effect_date(+), '-') <= '20121217'
39 and replace(decode(t1.seal_date(+),
40 '',
41 pkg_uf_bank.FN_GETNEXTDAY('20121217',
42 'M'),
43 t1.seal_date(+)),
44 '-') > '20121217'
45 and decode(t1.dr(+), '', 0, t1.dr(+)) = 0
46 and t1.pk_cm_psndoc = t2
47 .pk_cm_psndoc(+)
48 and decode(t2.dr(+), '', 0, t2.dr(+)) = 0
49 and t2.pk_dept = t4.pk_nctobapdept(+)
50 and t4.deptcode(+) <> '999999999'
51 and t3.data_date = '20121217'
52 and t3.acct_flag = 'DEPOSIT') t2
53 Where t1.acct_no_pk = t2.acct_no_pk
54 group by t2.mgr_code) b
55 where a.mgr_code = b.mgr_code
56 and a.dept1_code <> '999999999'
57 and a.dept1_code = '18605'
58 and a.unit3_code = '18601'
59 and 1 = 1
60 and a.mgr_code IN ('00798', '00817')
61 order by 1, 3, 5
62 ; Execution Plan
----------------------------------------------------------
Plan hash value: 74438866 ----------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
----------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 150 | 19483 (14)| 00:00:57 | | |
| 1 | SORT GROUP BY | | 1 | 150 | 19483 (14)| 00:00:57 | | |
|* 2 | HASH JOIN | | 1 | 150 | 19482 (14)| 00:00:57 | | |
|* 3 | HASH JOIN | | 1 | 115 | 8086 (13)| 00:00:24 | | |
| 4 | INLIST ITERATOR | | | | | | | |
|* 5 | TABLE ACCESS BY INDEX ROWID| S_PM_MGR_DEPT_RELA | 1 | 63 | 3 (0)| 00:00:01 | | |
|* 6 | INDEX RANGE SCAN | MGR_DEPT_RELA_IDX5 | 1 | | 2 (0)| 00:00:01 | | |
| 7 | VIEW | | 12519 | 635K| 8082 (13)| 00:00:24 | | |
|* 8 | HASH JOIN RIGHT OUTER | | 12519 | 2322K| 8082 (13)| 00:00:24 | | |
|* 9 | TABLE ACCESS FULL | BAP_NCTOBAPDEPT | 609 | 18270 | 4 (0)| 00:00:01 | | |
|* 10 | FILTER | | | | | | | |
|* 11 | HASH JOIN RIGHT OUTER | | 12519 | 1956K| 8077 (13)| 00:00:24 | | |
|* 12 | TABLE ACCESS FULL | BAP_CM_PSNDOC | 84 | 4284 | 33 (10)| 00:00:01 | | |
|* 13 | HASH JOIN RIGHT OUTER | | 629K| 65M| 8021 (12)| 00:00:24 | | |
|* 14 | TABLE ACCESS FULL | BAP_CM_ACCOUNT | 1 | 68 | 5627 (12)| 00:00:17 | | |
| 15 | PARTITION LIST SINGLE | | 629K| 24M| 2370 (13)| 00:00:07 | KEY | KEY |
|* 16 | TABLE ACCESS FULL | T_PM_ACCT_DTL | 629K| 24M| 2370 (13)| 00:00:07 | 352 | 352 |
| 17 | VIEW | | 93 | 3255 | 11396 (15)| 00:00:33 | | |
| 18 | HASH GROUP BY | | 93 | 5487 | 11396 (15)| 00:00:33 | | |
| 19 | PARTITION LIST INLIST | | 93 | 5487 | 11395 (15)| 00:00:33 |KEY(I) |KEY(I) |
|* 20 | TABLE ACCESS FULL | T_PM_ACCT_DTL_AF | 93 | 5487 | 11395 (15)| 00:00:33 |KEY(I) |KEY(I) |
---------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 2 - access("T1"."ACCT_NO_PK"="T2"."ACCT_NO_PK")
3 - access("A"."MGR_CODE"="T2"."MGR_CODE")
5 - filter("A"."DEPT1_CODE"='18605' AND "A"."DEPT1_CODE"<>'999999999')
6 - access("A"."UNIT3_CODE"='18601' AND ("A"."MGR_CODE"='00798' OR "A"."MGR_CODE"='00817'))
8 - access("T2"."PK_DEPT"="T4"."PK_NCTOBAPDEPT"(+))
9 - filter("T4"."DEPTCODE"(+)<>'999999999')
10 - filter(NVL("T2"."CM_CODE",NVL("T3"."MGR_CODE",'xxxxxx'))='00798' OR
NVL("T2"."CM_CODE",NVL("T3"."MGR_CODE",'xxxxxx'))='00817')
11 - access("T1"."PK_CM_PSNDOC"="T2"."PK_CM_PSNDOC"(+))
12 - filter(DECODE(TO_CHAR("T2"."DR"(+)),'',0,"T2"."DR"(+))=0)
13 - access("T1"."ACCOUNT"(+)="T3"."ACCT_NO_PK")
14 - filter(DECODE("T1"."SEAL_FLAG"(+),'','N',"T1"."SEAL_FLAG"(+))='N' AND
REPLACE("T1"."EFFECT_DATE"(+),'-')<='20121217' AND DECODE(TO_CHAR("T1"."DR"(+)),'',0,"T1"."DR"(+))=0 AND
REPLACE(DECODE("T1"."SEAL_DATE"(+),'',"PKG_UF_BANK"."FN_GETNEXTDAY"('20121217','M'),"T1"."SEAL_DATE"(+)),'-')>
'20121217')
16 - filter("T3"."ACCT_FLAG"='DEPOSIT')
20 - filter("ACCT_FLAG"='DEPOSIT' AND SUBSTR("FLAG",1,1)='1' AND SUBSTR("FLAG",4,1)='1' AND
"T1"."DEPT1_CODE"<>'999999999' AND TO_NUMBER("T1"."CUR_CODE")=1) Statistics
----------------------------------------------------------
154 recursive calls
0 db block gets
193327 consistent gets
13545 physical reads
692 redo size
1064 bytes sent via SQL*Net to client
1649 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
2 rows processed
利用no_merge优化的更多相关文章
- Android中利用ViewHolder优化自定义Adapter的典型写法
利用ViewHolder优化自定义Adapter的典型写法 最近写Adapter写得多了,慢慢就熟悉了. 用ViewHolder,主要是进行一些性能优化,减少一些不必要的重复操作.(WXD同学教我的. ...
- 利用Gulp优化部署Web项目[长文慎入]
Gulp Gulp是一款项目自动化的构建工具,与Grunt一样可以通过创建任务(Task)来帮助我们自动完成一些工作流的内容.当然,今天我们的内容并不是讨论这二者的区别,仅仅是介绍介绍如何利用Gulp ...
- 【转】利用TCMalloc优化Nginx的性能
From: http://www.linuxidc.com/Linux/2013-04/83197.html TCMalloc的全称是 Thread-Caching Malloc,是谷歌开发的开源工具 ...
- 利用Select2优化@Html.ListBoxFor显示,学会用MultiSelectList
最近需要用到多选框,Asp.Net MVC自带的@Html.ListBox或@Html.ListBoxFor的显示效果太差,于是找到了Select2进行优化,并正式了解了多选框的操作方法. 首先介绍多 ...
- MySQL如何利用索引优化ORDER BY排序语句
MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度. MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作. 通 ...
- MySQL如何利用索引优化ORDER BY排序语句 【转载】
本文转载自:http://blog.csdn.net/ryb7899/article/details/5580624 .感谢相关作者. MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执 ...
- shellcode在栈溢出中的利用与优化
0x00 前言 在<Windows Shellcode学习笔记——shellcode的提取与测试>中介绍了如何对shellcode作初步优化,动态获取Windows API地址并调用,并通 ...
- 利用jsPerf优化Web应用的性能
在前端开发的过程中,掌握好浏览器的特性进行有针对性的性能调优是一项基本工作,jsperf.com是一个用来发布基于HTML的针对性能比较的测试用例的网站,你可以在jsPerf上在线填写和运行测试用例, ...
- MySQL如何利用索引优化ORDER BY排序语
MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度. MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作. 通 ...
随机推荐
- IDEA下安装/配置Jrebel
IDEA下安装/配置Jrebel6.X 1. 为什么要使用Jrebel 在日常开发过程中, 一旦修改配置/在类中增加静态变量/增加方法/修改方法名等情况, tomcat不会自动加载, 需要重启tomc ...
- linux find grep使用
在当前目录下所有文件中查找内容包含 string 的文件: find ./ -name "*" -exec grep "string" {} \; 注意:在最后 ...
- Android studio错误及解决办法
错误: Cannot launch AVD in emulator. Output: emulator: ERROR: GPU emulation is disabled. Only screen s ...
- Python学习入门教程,字符串函数扩充详解
因有用户反映,在基础文章对字符串函数的讲解太过少,故写一篇文章详细讲解一下常用字符串函数.本文章是对:程序员带你十天快速入门Python,玩转电脑软件开发(三)中字符串函数的详解与扩充. 如果您想学习 ...
- ios 添加通用断点定位到异常点
今天下午项目突然异常崩溃,因为代码没有多少结构改动,恢复旧版本还是不行,判定为网络获取信息异常,无奈从网络获取的信息太多,搞了很久后发现有个通用异常断点很好用,新手就是新手,浪费时间了.
- 【转】Objective-C中的instancetype和id关键字
原文:http://blog.csdn.net/wzzvictory/article/details/16994913 一.什么是instancetype instancetype是clang 3.5 ...
- C#程序将对象保存为json文件的方法
首先,从NuGet上下载JSON .Net,安装到所需项目中. 对象obj保存到文件的步骤: 1. 创建文件 // 获取当前程序所在路径,并将要创建的文件命名为info.json string fp ...
- java_反射_及其简单应用(2016-11-16)
话不多说直接上代码 接口: package bean; /** * user接口 */ public interface User { public String getName(); public ...
- canvas 之 - 精灵 钟表动画
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 正则版----getByClass函数
function getByClass(oParent,sClass){ var arr = []; var aEle = oParent.getElementsByTagName('*'); //v ...