
Oracle SQL&PL/SQL
文章平均质量分 73
OracleSQL&PL/SQL
lsdb
这个作者很懒,什么都没留下…
展开
-
简单说说 gather_plan_statistics
也就是查询执行期间收集额外的指标。然后使用display_cursor 给出了真实的执行计划,这个执行计划不会将数据保存到 PLAN_TABLE 中,而是将执行统计信息存储V$SQL_PLAN, V$SQL_PLAN_STATISTICS_ALL视图里。其中优化SQL语句的最关键的一步是得到SQL的执行计划。实际的SQL执行计划是由优化器在运行SQL查询时生成的。总结:优化SQL性能的第一步是会组合使用GATHER_PLAN_STATISTICS 和DBMS_XPLAN.DISPLAY_CURSOR。原创 2024-05-06 17:02:42 · 23937 阅读 · 1 评论 -
Oracle 23c? No Oracle 23ai
为了帮助 DBA,Oracle Database 23ai 进一步优化了许多关键管理任务,降低了这些任务的复杂性并提高了其性能,并引入了一些新功能来简化任务,例如回收表空间中的可用空间。Oracle Database 23ai 还包括对 SQL 和 PL/SQL 的重大改进,引入了新的数据类型和语言增强功能,以创建新的或改进现有的 OLTP 或分析应用程序。出乎意料的是这个版本从Oracle 23c 更名为 Oracle 23ai ,似乎预示着Oracle的掌舵人Larry也要全面拥抱AI技术浪潮了。原创 2024-05-04 11:30:33 · 678 阅读 · 0 评论 -
一文说明白Oracle case when的使用
一种是简单的 CASE 表达式,Oracle 数据库第一个 WHEN ...THEN是否对,其中 expr 等于 comparison_expr 并返回 return_expr。另一种是搜索的 CASE 表达式中,Oracle 从左到右搜索,直到找到出现的条件为 true,然后返回 return_expr。注意case when 是从上到下匹配,如果第一行匹配成功,后面的就不会执行了,这里很容易出现逻辑错误 比如下面的sql。如果then后面的类型不一样,会报错如下。函数里面也能使用case when。原创 2024-04-16 17:05:36 · 6374 阅读 · 0 评论 -
Oracle Hints 语句的用法
1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT /*+ALL+_ROWS*/ EMP_NO, EMP_NAM, DAT_INFROM BSEMPMSWHERE EMP_NO = 'SCOTT';2. /*+FIRST_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.例如:SELECT /*+FIRST_ROWS*/ EMP_NO, EMP_NAM, DAT_INFROM .原创 2022-05-14 09:56:28 · 318 阅读 · 0 评论 -
创建登录或退出触发器(开机/关机/登录/退出/服务器故障)
数据库触发器通知--shutdown trigger--startup trigger--logon trigger--logoff trigger--server error trigger创建一张表保存触发器记录:create table trigger_table (database_name varchar2(30), event_name varchar2(20), event_time date, triggered_by_user varchar2(30));--s.原创 2020-06-01 13:45:39 · 401 阅读 · 0 评论 -
Oracle 表空间历史增量统计
select to_char(snap.END_INTERVAL_TIME, 'yyyy-mm-dd hh24:mi:ss.ff'), sum(tsu.TABLESPACE_SIZE * dt.BLOCK_SIZE) / (1024 * 1024 * 1024) total_gigabytes, sum(tsu.TABLESPACE_USEDSIZE * dt.BLO...原创 2020-04-15 10:50:47 · 1499 阅读 · 0 评论 -
Oracle 索引失效查询监控
失效查询监控语句:普通索引:SELECT owner, index_name, tablespace_name FROM dba_indexesWHERE status = 'UNUSABLE';分区索引:SELECT index_owner, index_name, partition_name, tablespace_name FROM dba_ind_PARTITI...原创 2020-04-10 11:05:03 · 586 阅读 · 0 评论 -
Connect to an Oracle database with JDBC
import java.sql.*;public class TestDBOracle { public static void main(String[] args) throws ClassNotFoundException, SQLException { Class.forName("oracle.jdbc.driver.OracleDriver");原创 2013-07-28 21:14:36 · 756 阅读 · 0 评论 -
程序员技术练级攻略
程序员技术练级攻略2011年7月18日陈皓发表评论阅读评论 303,954 人阅读 月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,转载 2013-07-23 21:53:34 · 624 阅读 · 0 评论 -
dump函数
在oracle pl/sql中有dump的函数:官方文档的描述是: DUMP returns a VARCHAR2 value containing the datatype code, length in bytes, and internal representation ofexpr..语法格式是: DUMP( expression, [return_format], [st原创 2014-08-09 17:37:12 · 1713 阅读 · 0 评论 -
如何查询user_tab_partitions 视图的 HIGH_VALUE字段?
有时候我们需要查询分区表确定分区的大小。就需要查询user_tab_partitions 视图的HIGH_VALUE字段。但是会发现这个字段的类型 是LONG 类型。例如:SQL> desc user_tab_partitions;Name Type Nullable Default Comments-------------...原创 2020-02-17 22:28:10 · 4467 阅读 · 0 评论 -
与NULL 有关的几个函数
NULL 与 函数:NVL(expr1,expr2): 如果expr1 是NULL ,那么用expr2作为返回值。不是NULL 则返回expr1.用于expr1可能是NULL,而我们不想在查询结果中出现空值转换的需求:sys@LS1>select nvl(NULL,0) FROM DUAL; NVL(NULL,0)----------- 0原创 2014-08-09 12:48:21 · 2033 阅读 · 0 评论 -
merge应用一例
如何把id 为1scott@LS1>create table test(id number,name varchar2(20)); Table created.scott@LS1>insert into test values(1,'a');1 row created.scott@LS1>insert into test values(2,'b');原创 2014-08-08 21:28:02 · 528 阅读 · 0 评论 -
oracle CBO 的可传递性
可传递性:是CBO在查询转换原创 2014-06-19 20:34:26 · 523 阅读 · 0 评论 -
分享一个sql (按时间段查看redo产生的量和sql的解析情况)
select s.snap_date, decode(s.redosize, null, '--shutdown or end--', s.currtime) "TIME", to_char(round(s.seconds/60,2)) "elapse(min)", round(t.db_time / 1000000 / 60, 2) "DB time(m原创 2014-06-12 14:47:45 · 1103 阅读 · 0 评论