墨墨导读:本文分享Oracle驻场工程师常用的脚本,基本上包含了日常监控、维护、故障定位及处理、SQL性能优化大部分场景,有了这些脚本会让你的工作变得更轻松,文末附下载链接。

目录

1. 2pc_clean.txt

2. ash_sql_line_id.txt

3. awr_db_time.txt

4. awr_metric_name.txt

5. bind_noused.txt

6. cursor_purge.txt

7. ddl_metadata.txt

8. dml_get.txt

9. fra_get.txt

10. param_get.txt

11. segment_size.txt

12. session_sid.txt

13. session_spid.txt

14. shared_pool_free.txt

15. sql_monitor.txt

16. tablespace_used.txt

17. temp_used.txt

18. transaction_get.txt

19. undo_used.txt

20. wait_event.txt

21. wait_event_block.txt

22. wait_event_hash.txt

23. wait_event_sqlid.txt

24. wait_session_hash.txt

25. wait_session_sqlid.txt

26. ash_used.txt

27. sql_profile.txt

28. tabstat.txt

29. sqlinfo_total.txt

30. awr_event_histogram.txt

31. ash_top_sql_event.txt

32. sqlhis_awr.txt

33. session_kill.txt

34. redo_switch.txt

2pc_clean.txt

select 'rollback force '||''''||local_tran_id||''''||';' "RollBack"       from dba_2pc_pending       where state='prepared';
select 'exec dbms_transaction.purge_lost_db_entry('||''''||local_tran_id||''''||');' "Purge"       from dba_2pc_pending;

ash_sql_line_id.txt

set linesize 260 pagesize 10000SELECT    SQL_PLAN_HASH_VALUE,    event,    sql_plan_line_id,    COUNT(*)FROM    dba_hist_active_sess_historyWHERE    sql_id = '&SQL_ID'    AND sample_time between        to_date('&date1', 'yyyymmddhh24miss') and        to_date('&date2', 'yyyymmddhh24miss')GROUP BY    SQL_PLAN_HASH_VALUE,sql_plan_line_id,eventORDER BY    4 DESC;

awr_db_time.txt

set linesize 220 pagesize 1000col begin_interval_time for a30col end_interval_time for a30col stat_name for a40WITH sysstat        AS (SELECT ss.instance_number inst_id,       sn.begin_interval_time begin_interval_time,       sn.end_interval_time end_interval_time,       ss.stat_name stat_name,       ss.VALUE e_value,       LAG(ss.VALUE) OVER(partition by ss.instance_number ORDER BY ss.snap_id) b_value  FROM dba_hist_sys_time_model ss, dba_hist_snapshot sn WHERE sn.begin_interval_time >= SYSDATE - &date   AND ss.snap_id = sn.snap_id   AND ss.dbid = sn.dbid   AND ss.instance_number = sn.instance_number   AND ss.dbid = (SELECT dbid FROM v$database)   and ss.stat_name = 'DB time'   and ss.instance_number in (select instance_number from v$instance)              )select inst_id,       begin_interval_time,       end_interval_time,       stat_name,       round((e_value - b_value)/1000/1000/60) value_min  from sysstat  order by 2 desc, 3 desc;

awr_metric_name.txt

set linesize 220 pagesize 1000select METRIC_NAME from V$SYSMETRIC_SUMMARY where lower(METRIC_NAME) like '%&metric_name%';
set linesize 220 pagesize 1000col begin_interval_time for a30col end_interval_time for a30col METRIC_NAME for a45select a.SNAP_ID,       b.BEGIN_INTERVAL_TIME,       b.END_INTERVAL_TIME,       a.METRIC_NAME,       round(a.AVERAGE, 2) AVERAGE,       round(a.MAXVAL, 2) MAXVAL  from dba_hist_sysmetric_summary a, dba_hist_snapshot b where a.SNAP_ID = b.SNAP_ID   and a.INSTANCE_NUMBER = b.INSTANCE_NUMBER   and a.INSTANCE_NUMBER in (select instance_number from v$instance)   and a.METRIC_NAME in ('&metric_name')   and b.BEGIN_INTERVAL_TIME>sysdate-&date order by b.BEGIN_INTERVAL_TIME;

bind_noused.txt

set linesize 220 pagesize 10000set long 999999999col MODULE for a40col sql_id for a30col PARSING_SCHEMA_NAME for a20alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'select a.sql_id,       a.MODULE,       a.PARSING_SCHEMA_NAME,       a.last_active_time,       a.last_load_time,       a.sql_fulltext,       b.pool_mb,       b.cnt  from v$sqlarea a,       (select max(sql_id) sql_id,               FORCE_MATCHING_SIGNATURE,               round(sum(SHARABLE_MEM / 1024 / 1024)) pool_mb,               count(1) cnt          from v$sqlarea         where FORCE_MATCHING_SIGNATURE > 0           and FORCE_MATCHING_SIGNATURE != EXACT_MATCHING_SIGNATURE         group by FORCE_MATCHING_SIGNATURE        having count(1) > 3         order by count(1) desc) b where a.sql_id = b.sql_id order by cnt desc;

cursor_purge.txt

declare    v_address_hash varchar2(128);begin    select address||', '||hash_value into v_address_hash    from v$sqlarea    where sql_id = '&SQL_ID';sys.dbms_shared_pool.purge(v_address_hash, 'C');end;/

ddl_metadata.txt

set linesize 260set long 999999set pagesize 1000select dbms_metadata.get_ddl(upper('&object_type'),upper('&object_name'),upper('&owner')) FROM DUAL;

dml_get.txt

set linesize 220 pagesize 10000alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';col table_owner for a20col table_name for a30col partition_name for a20col subpartition_name for a20select a.*,sysdate from dba_tab_modifications a where table_name=upper('&table_name');

fra_get.txt

set echo offset lines 300set pagesize 1000col reclaimable for a20COL used for a20COL QUOTA FOR A20COL NAME FOR A30col used1 for 99999 heading 'USED%';prompt "RECOVERY FILE DEST AND SIZE"SELECT substr(name, 1, 30) name, round(space_limit/1024/1024)||'M' AS quota,       round(space_used/1024/1024)||'M'        AS used,round(100*space_used/space_limit) used1,       round(space_reclaimable/1024/1024)||'M' AS reclaimable,        number_of_files   AS files  FROM  v$recovery_file_dest  /
Select file_type, percent_space_used,percent_space_reclaimable,number_of_files as "number" from v$flash_recovery_area_usage/

param_get.txt

set linesize 220 pagesize 1000col ksppinm for a40col ksppstvl for a40col ksppdesc for a100select a.ksppinm, a.ksppdesc,b.ksppstvl,a.inst_id  from sys.x$ksppi a, sys.x$ksppcv b where upper(a.ksppinm) like upper('%&param%')   and a.indx = b.indx    order by a.ksppinm;

segment_size.txt

col owner for a15col segment_name for a29col partition_name for a30col tablespace_name for a29col size_m for 999,999,999col blocks for 999,999,999select owner,segment_name, partition_name,tablespace_name,bytes/1024/1024 size_m,blocks from dba_segments where segment_name=UPPER('&segment_name') order by 1;

session_sid.txt

set linesize 260set pagesize 1000col sid for 99999col spid for a8col event for a30col module for a35col machine for a15col username for a10col holder for a10col final for a10col sql_id for a15col exec_gets for 99999999col seconds for a5col object_id for 999999col param for a30col sql_text for a6col PGA_USE for 9999alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';select a.sid,       a.username,       a.machine,       a.module,       a.event,       a.sql_id,       round(decode(c.executions,0,buffer_gets,buffer_gets/executions)) exec_gets,       a.ROW_WAIT_OBJ# object_id,       a.BLOCKING_INSTANCE||'_'||a.blocking_session  holder,       a.FINAL_BLOCKING_INSTANCE||'_'||a.FINAL_BLOCKING_SESSION final,       to_char(LAST_CALL_ET) seconds,       a.p1 || '_' || a.p2 || '_' || a.p3 param,       b.spid,       trunc(b.PGA_USED_MEM / 1024 / 1024,2) as PGA_USE,       substr(c.sql_text,0,6) sql_text  from v$session a, v$process b,v$sql c where a.paddr = b.addr(+)   and a.status = 'ACTIVE'   and not (a.type = 'BACKGROUND' and a.state = 'WAITING' and        a.wait_class = 'Idle')   and a.sql_id=c.sql_id(+)   and a.sql_child_number=c.CHILD_NUMBER(+)   and a.sid='&SID' order by a.sql_id, a.machine/

session_spid.txt

set linesize 260set pagesize 1000col sid for 99999col spid for a8col event for a30col module for a35col machine for a15col username for a10col holder for a10col final for a10col sql_id for a15col exec_gets for 99999999col seconds for a5col object_id for 999999col param for a30col sql_text for a6col PGA_USE for 9999alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';select a.sid,       a.username,       a.machine,       a.module,       a.event,       a.sql_id,       round(decode(c.executions,0,buffer_gets,buffer_gets/executions)) exec_gets,       a.ROW_WAIT_OBJ# object_id,       a.BLOCKING_INSTANCE||'_'||a.blocking_session  holder,       a.FINAL_BLOCKING_INSTANCE||'_'||a.FINAL_BLOCKING_SESSION final,       to_char(LAST_CALL_ET) seconds,       a.p1 || '_' || a.p2 || '_' || a.p3 param,       b.spid,       trunc(b.PGA_USED_MEM / 1024 / 1024,2) as PGA_USE,       substr(c.sql_text,0,6) sql_text  from v$session a, v$process b,v$sql c where a.paddr = b.addr(+)   and a.status = 'ACTIVE'   and not (a.type = 'BACKGROUND' and a.state = 'WAITING' and        a.wait_class = 'Idle')   and a.sql_id=c.sql_id(+)   and a.sql_child_number=c.CHILD_NUMBER(+)   and b.spid='&SPID' order by a.sql_id, a.machine/

shared_pool_free.txt

set linesize 260 pagesize 1000select pool, name, bytes / 1024 / 1024 / 1024 GB      from v$sgastat     where name like 'free memory'    ;

sql_monitor.txt

SET LONG 1000000SET LONGCHUNKSIZE 1000000SET LINESIZE 1000SET PAGESIZE 0SET TRIM ONSET TRIMSPOOL ONSET ECHO OFFSET FEEDBACK OFFSELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(  SQL_ID       => '&SQL_ID',  TYPE         => 'TEXT',  REPORT_LEVEL => 'ALL') AS REPORTFROM dual;

tablespace_used.txt

--表空间使用率set linesize 220 pagesize 10000COL SIZE_G FOR A15COL FREE_G FOR A15COL USED_PCT FOR A10COL TABLESPACE_NAME FOR A30SELECT d.tablespace_name,           to_char(nvl(a.bytes / 1024 / 1024 / 1024, 0), '99,999,990.00') size_g,           to_char(nvl(f.bytes, 0) / 1024 / 1024 / 1024, '99,999,990.00') free_g,           to_char(nvl((a.bytes - nvl(f.bytes, 0)) / a.bytes * 100, 0), '990.00') || '%' used_pct    FROM   dba_tablespaces d,           (SELECT tablespace_name, SUM(bytes) bytes            FROM   dba_data_files            GROUP  BY tablespace_name) a,           (SELECT tablespace_name, SUM(bytes) bytes           FROM   dba_free_space           GROUP  BY tablespace_name) f   WHERE  d.tablespace_name = a.tablespace_name(+)          AND d.tablespace_name = f.tablespace_name(+)          AND NOT (d.extent_management = 'LOCAL' AND d.contents = 'TEMPORARY')   ORDER  BY 4 DESC;
--查询temp表空间使用率:select  df.tablespace_name "Tablespace",       df.totalspace "Total(MB)",       nvl(FS.UsedSpace, 0)  "Used(MB)",       (df.totalspace - nvl(FS.UsedSpace, 0)) "Free(MB)",       round(100 * (1-( nvl(fs.UsedSpace, 0) / df.totalspace)), 2) "Pct. Free(%)"FROM  (SELECT tablespace_name, round(SUM(bytes) / 1048576) TotalSpace        FROM   dba_TEMP_files        GROUP  BY tablespace_name) df,       (SELECT tablespace_name, ROUND(SUM(bytes_used) / 1024 / 1024)  UsedSpace        FROM   gV$temp_extent_pool        GROUP  BY tablespace_name) fs  WHERE  df.tablespace_name = fs.tablespace_name(+);

temp_used.txt

--查询temp表空间使用率:select  df.tablespace_name "Tablespace",       df.totalspace "Total(MB)",       nvl(FS.UsedSpace, 0)  "Used(MB)",       (df.totalspace - nvl(FS.UsedSpace, 0)) "Free(MB)",       round(100 * (1-( nvl(fs.UsedSpace, 0) / df.totalspace)), 2) "Pct. Free(%)"FROM  (SELECT tablespace_name, round(SUM(bytes) / 1048576) TotalSpace        FROM   dba_TEMP_files        GROUP  BY tablespace_name) df,       (SELECT tablespace_name, ROUND(SUM(bytes_used) / 1024 / 1024)  UsedSpace        FROM   gV$temp_extent_pool        GROUP  BY tablespace_name) fs  WHERE  df.tablespace_name = fs.tablespace_name(+)
--查询实时使用temp表空间的sql_id和sid:
set linesize 260 pagesize 1000col machine for a40col program for a40SELECT se.username,       sid,       serial#,       se.sql_id       machine,       program,       tablespace,       segtype,       (su.BLOCKS*8/1024/1024) GB  FROM v$session se, v$sort_usage su WHERE se.saddr = su.session_addr order by su.BLOCKS desc;
--需要注意的是这里查询sql_id要用v$session视图的sql_id,而不要用v$sort_usage视图的sql_id,v$sort_usage视图里面的sql_id是不准确的
--查询历史的temp表空间的使用的SQL_ID
select a.SQL_ID,       a.SAMPLE_TIME,       a.program,       sum(trunc(a.TEMP_SPACE_ALLOCATED / 1024 / 1024)) MB  from v$active_session_history a where TEMP_SPACE_ALLOCATED is not null  and sample_time between to_date('&date1', 'yyyy-mm-dd hh24:mi:ss') and to_date('&date2', 'yyyy-mm-dd hh24:mi:ss') group by a.sql_id,a.SAMPLE_TIME,a.PROGRAM order by 2 asc,4 desc;

transaction_get.txt

set linesize 260 pagesize 10000column sess       format a21 heading "SESSION"column program    format a18column clnt_pid   format a8column machine    format a25column username   format a12column osuser     format a13column event      format a32column waitsec    format 999999column start_time format a18column sql_id     format a15column clnt_user  format a10column svr_ospid  format a10
ALTER SESSION SET NLS_DATE_FORMAT = 'yyyy/mm/dd hh24:mi:ss';
set feedback offset echo off
set head offselect chr(9) from dual;select 'Waiting Transactions'||chr(10)||'====================' from dual;set head onselect /*+ rule */       lpad(nvl(s.username,' '),8)||'('||s.sid||','||s.serial#||')' as sess,       p.spid as svr_ospid,       nvl(osuser,' ') as clnt_user,       s.process as clnt_pid,       substr((case instr(s.PROGRAM, '@')                 when 0 then                   s.program                 else                   case instr(s.PROGRAM, '(TNS V1-V3)')                     when 0 then                       substr(s.program, 1, instr(s.PROGRAM, '@') - 1) || substr(s.program, instr(s.PROGRAM, '(') - 1)                     else                       substr(s.program, 1, instr(s.PROGRAM, '@') - 1)                   end                                                         end),              1, 18) as program,       (case             when length(s.MACHINE) > 8 then substr(s.machine,1,8)||'~'            else s.machine        end       ) || '('||nvl(s.client_info, 'Unknown IP')||')' as machine, s.sql_id,       substr(s.event, 1, 32) as event,       s.seconds_in_wait      as waitsec  from v$transaction t,v$session s,v$process p where t.ses_addr=s.saddr and s.paddr=p.addr order by s.seconds_in_wait, s.program, s.machine;

undo_used.txt

--实时的undo使用量set linesize 220set pagesize 1000col username for a20col module for a40col sql_id for a15col status for a10col machine for a20alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';select *  from (select start_time,               username,                s.MACHINE,                s.OSUSER,                r.name,                ubafil, --Undo block address (UBA) filenum                 ubablk, --UBA block number                 t.status,                  (used_ublk * 8192 / 1024) kbtye,                  used_urec,                  s1.SQL_ID,                  substr(s1.SQL_TEXT,0,20)          from v$transaction t, v$rollname r, v$session s, v$sqlarea s1         where t.xidusn = r.usn           and s.saddr = t.ses_addr           and s.sql_id = s1.sql_id(+)         order by 9 desc) where rownum <= 10;

wait_event.txt

set linesize 220set pagesize 1000select inst_id,event,count(*)  from gv$session a where a.status='ACTIVE' and not (a.type = 'BACKGROUND' and a.state='WAITING' and  a.wait_class='Idle') group by inst_id,event order by a.inst_id,count(*) desc;

wait_event_block.txt

set linesize 220set pagesize 1000select inst_id,event,sql_id,BLOCKING_INSTANCE,blocking_session,FINAL_BLOCKING_INSTANCE,FINAL_BLOCKING_SESSION, count(*)  from gv$session a where a.status='ACTIVE' and not (a.type = 'BACKGROUND' and a.state='WAITING' and  a.wait_class='Idle') and upper(event) like upper('%&event%') group by inst_id,event,sql_id,BLOCKING_INSTANCE,blocking_session,FINAL_BLOCKING_INSTANCE,FINAL_BLOCKING_SESSION order by inst_id ,count(*) desc, sql_id;

wait_event_hash.txt

set linesize 220set pagesize 1000select a.event, c.plan_hash_value,max(round(decode(c.executions,0,c.buffer_gets,c.buffer_gets/c.executions))) exec_gets,count(*)  from gv$session a,gv$sql c where a.status='ACTIVE' and not (a.type = 'BACKGROUND' and a.state='WAITING' and  a.wait_class='Idle') and a.sql_id=c.sql_id(+) and a.sql_child_number=c.CHILD_NUMBER(+) and a.inst_id=c.inst_id group by a.inst_id,a.event, c.plan_hash_value order by a.inst_id,count(*) desc, c.plan_hash_value;

wait_event_sqlid.txt

set linesize 220set pagesize 1000select a.inst_id,a.event, a.sql_id,max(round(decode(c.executions,0,c.buffer_gets,c.buffer_gets/c.executions))) exec_gets, count(*)  from gv$session a,gv$sql c where a.status='ACTIVE' and not (a.type = 'BACKGROUND' and a.state='WAITING' and  a.wait_class='Idle') and a.sql_id=c.sql_id(+) and a.sql_child_number=c.CHILD_NUMBER(+) and a.inst_id=c.inst_id group by a.inst_id,a.event, a.sql_id order by a.inst_id,count(*) desc, a.sql_id;

wait_session_hash.txt

set linesize 260set pagesize 1000col sid for 99999col spid for a8col event for a30col module for a35col machine for a15col username for a10col holder for a10col final for a10col sql_id for a15col exec_gets for 99999999col seconds for a5col object_id for 999999col param for a30col sql_text for a6col PGA_USE for 9999alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';select a.sid,       a.username,       a.machine,       a.module,       a.event,       c.plan_hash_value,       round(decode(c.executions,0,buffer_gets,buffer_gets/executions)) exec_gets,       a.ROW_WAIT_OBJ# object_id,       a.BLOCKING_INSTANCE||'_'||a.blocking_session  holder,       a.FINAL_BLOCKING_INSTANCE||'_'||a.FINAL_BLOCKING_SESSION final,       to_char(LAST_CALL_ET) seconds,       a.p1 || '_' || a.p2 || '_' || a.p3 param,       b.spid,       trunc(b.PGA_USED_MEM / 1024 / 1024,2) as PGA_USE,       substr(c.sql_text,0,6) sql_text  from v$session a, v$process b,v$sql c where a.paddr = b.addr(+)   and a.status = 'ACTIVE'   and a.sql_id=c.sql_id(+)   and a.sql_child_number=c.CHILD_NUMBER(+)   and not (a.type = 'BACKGROUND' and a.state = 'WAITING' and        a.wait_class = 'Idle') order by c.plan_hash_value, a.machine/

wait_session_sqlid.txt

set linesize 260set pagesize 1000col sid for 99999col spid for a8col event for a30col module for a35col machine for a15col username for a10col holder for a10col final for a10col sql_id for a15col exec_gets for 99999999col seconds for a5col object_id for 999999col param for a30col sql_text for a6col PGA_USE for 9999alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';select a.sid,       a.username,       a.machine,       a.module,       a.event,       a.sql_id,       round(decode(c.executions,0,buffer_gets,buffer_gets/executions)) exec_gets,       a.ROW_WAIT_OBJ# object_id,       a.BLOCKING_INSTANCE||'_'||a.blocking_session  holder,       a.FINAL_BLOCKING_INSTANCE||'_'||a.FINAL_BLOCKING_SESSION final,       to_char(LAST_CALL_ET) seconds,       a.p1 || '_' || a.p2 || '_' || a.p3 param,       b.spid,       trunc(b.PGA_USED_MEM / 1024 / 1024,2) as PGA_USE,       substr(c.sql_text,0,6) sql_text  from v$session a, v$process b,v$sql c where a.paddr = b.addr(+)   and a.status = 'ACTIVE'   and not (a.type = 'BACKGROUND' and a.state = 'WAITING' and        a.wait_class = 'Idle')   and a.sql_id=c.sql_id(+)   and a.sql_child_number=c.CHILD_NUMBER(+) order by a.sql_id, a.machine/

因篇幅限制,就不在此一一展示了,大家可通过下面链接下载打包好的脚本。
资源下载:https://www.modb.pro/download/43926(复制到浏览器中打开或者点击“阅读原文”立即下载)

作者

邓秋爽,云和恩墨资深技术专家,有超过5年超大型数据库专业服务经验,擅长oracle 数据库优化、SQL优化和troubleshooting。

推荐阅读:267页!2020年度数据库技术年刊

推荐下载:2020数据技术嘉年华PPT下载

2020数据技术嘉年华近50个PPT下载、视频回放已上传墨天轮平台,可在“数据和云”公众号回复关键词“2020DTC”获得!

视频号,新的分享时代,关注我们,看看有什么新发现?

数据和云

ID:OraNews

如有收获,请划至底部,点击“在看”,谢谢!

点击下图查看更多 ↓

云和恩墨大讲堂 | 一个分享交流的地方

长按,识别二维码,加入万人交流社群

请备注:云和恩墨大讲堂

  点个“在看”

你的喜欢会被看到❤

资源下载丨Oracle优化工程师常用的34个脚本相关推荐

  1. chrome的network查看资源下载时间并优化(瀑布流图)

    看懂瀑布流图可以更加合理地优化加载时间,面对一些加载问题可以更快地找到原因并使用相应地对策 Stalled:资源阻塞时间,触发阻塞有两种情况:1.浏览器本身对同一个域名的并发请求是有数量限制的,chr ...

  2. 60+PPT 下载丨Oracle Open World 2019

    之前有读者询问一些数据库相关的大会资源,小编收集整理了很多文档,创建了相应的墨天轮专栏,后续将逐个分享到"数据和云"公众号. 这里我们分享 2019 Oracle Open Wor ...

  3. 下载丨Oracle 11g 安装后参数规范设置

    墨天轮文档:<Oracle 11g安装后参数规范设置>:https://www.modb.pro/doc/19(复制到浏览器或者点击"阅读原文"即可下载) 以下截取部分 ...

  4. 下载丨Oracle 12c最佳参数实践

    墨天轮文档:<Oracle 12c最佳参数实践>:https://www.modb.pro/doc/5(复制到浏览器或者点击"阅读原文"可立即下载),下载文档需要25墨 ...

  5. 高级SQL优化(三) 常用优化工具 ——《12年资深DBA教你Oracle开发与优化——性能优化部分》...

    目录: Oracle数据完整性和锁机制  索引及优化之表分析  表分析.约束及表间关系  Oracle体系结构1 Oracle体系结构2  海量数据库及分区1  海量数据库及分区2  海量数据库及分区 ...

  6. oracle distinct分页优化_Oracle SQL性能优化最常用的40条建议

    关于Oracle SQL优化的内容,这一篇应该能满足常规大部分的应用优化需求,整整40条优化建议,干货满满. 1. SQL语句执行步骤 语法分析> 语义分析> 视图转换 >表达式转换 ...

  7. 构建高性能ASP.NET站点 第七章 如何解决内存的问题(后篇)—托管资源优化—监常用优化措施...

    构建高性能ASP.NET站点 第七章 如何解决内存的问题(后篇)-托管资源优化-监常用优化措施   前言:有段时间没有写这个系列了,希望大家见谅,本篇主要将会介绍一些常用的CLR优化措施. 本篇的议题 ...

  8. oracle sql语句常用优化方法

    oracle sql语句常用优化方法 最近做一些报表查询,经常做一些小优化,在这里总结一下 语句上的优化: 1.SELECT 语句中避免使用*,用那些字段就摘出哪些. 2.SQL语句尽量用大写: 因为 ...

  9. 在线教育丨在线课堂丨知识付费系统丨自适应手机版虚拟资源下载php源码

    源码简介: 这是一款知识付费系统,后台可上传本地视频,批量上传视频连接,视频后台可设计权限观看,免费试看时间时长,会员等级观看,付费观 看等功能,也带软件app权限下载,帮助知识教育和软件推广企业提升 ...

最新文章

  1. 解题报告(一)快速沃尔什变换FWT(ACM / OI)超高质量题解
  2. 年薪75万的真实技术面试实践攻略(篇章一)
  3. 镜头视场角计算工具_什么是变焦镜头 变焦镜头介绍【详解】
  4. 最近想问题想的睡不着,上来郁闷下!
  5. SpringCloud-Hytrix
  6. Elasticsearch上手——熟悉基本操作
  7. windows server 2003中继代理
  8. note同步不及时 one_高速路失灵/A柱断裂…理想ONE的自动驾驶还能信吗?
  9. muduo网络库学习(一)对io复用的封装Poller,面向对象与基于对象
  10. liferay如何在struts2中調用ajax
  11. 03JavaScript程序设计修炼之道-2019-06-20_20-31-49
  12. OOP-ECMAScript - 深入理解Javascript
  13. STM32的优先级NVIC_PriorityGroupConfig的理解及其使用(转)
  14. windows API 第13篇 MoveFileEx
  15. 最常见的Web服务器市场份额
  16. ubuntu18.04配置远程服务器:安装ssh
  17. a - 数据结构实验之串一:kmp简单应用_Java程序员必会之数据结构与算法全梳理
  18. day05_日常SQL练习(一)
  19. 5.企业安全建设入门(基于开源软件打造企业网络安全) --- 业务安全
  20. Java开发、网络爬虫、自然语言处理、数据挖掘简介

热门文章

  1. Unity shader入门之数据类型
  2. trang.jar转换xml到Javabean
  3. devops 业务模型_如何为DevOps转型建立业务案例
  4. git 代理 git_生日快乐,Git
  5. 涉足荒野script_为什么社区经理必须涉足(而不是潜入)社区
  6. ldap radius_在LDAP上使用RADIUS的好处
  7. 简易 MVC框架 弃坑
  8. Bootstrap CSS 编码规范之带前缀的属性
  9. linux从Mac下载文件,如何将命令的输出保存到Bash中的文件(也称为Linux和macOS终端) | MOS86...
  10. d3 和echart_D3.js与echart.js的应用场景