For a long time, I have been using the EXISTS clause to determine if at least one record exists in a given table for a given condition. for example - if I wanted to see if an employee by lastname = 'smith' exists in the "employee" table, I used the following query

select 1
into v_exists_flag
from dual
where exists (select 1
from employee
where lastname = 'smith'
)

This is definitely more efficient than using the count(*) clause.

select count(*)
into v_count
from employee
where lastname = 'smith'

if v_count > 0 then....

But, recently someone mentioned that using ROWNUM = 1 has better performance than using the EXISTS clause as shown below

select 1
into v_count
from employee
where lastname = 'smith'
and rownum = 1

ROWNUM = 1 to replace count(*)的更多相关文章

  1. KingbaseES rownum 与 limit 的 执行计划区别

    数据准备 --创建基础数据表100W行 create table test07 as select * from (select generate_series(1, 1000000) id, (ra ...

  2. xplan.sql(本脚本获取执行计划显示执行顺序)

    -- ---------------------------------------------------------------------------------------------- -- ...

  3. oracle 存储过程 包 【转】

    一.为什么要用存储过程? 如果在应用程序中经常需要执行特定的操作,可以基于这些操作简历一个特定的过程.通过使用过程可以简化客户端程序的开发和维护,而且还能提高客户端程序的运行性能. 二.过程的优点? ...

  4. 【杂记】SQL篇

    21.事务 22.左联右联 23.大小写转换 24.MySql字符串拼接 25.查询数据库表总数 26.Oracle虚拟表 27.判断是否为空 28.SQL取diff 29.存储过程proc 30.创 ...

  5. xplan-打印执行顺序

    -- ------------------------------------------------------------------------------------------------- ...

  6. 【知识碎片】SQL篇

    43.group by多个字段 查询每个班级男女生各多少人 Select count(id),xingbie,banji from tablename group by xingbie,banji 4 ...

  7. Oracle存储过程(包:PACK_KPI_KERNEL For YS三度评价体系)

    CREATE OR REPLACE PACKAGE PACK_KPI_KERNEL IS --定义多级数组 字符串 TYPE TSTRARRY ) INDEX BY BINARY_INTEGER; T ...

  8. java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0

    使用repalceAll 方法出现java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0异常 ...

  9. dojo/_base/lang源码分析

    dojo/_base/lang模块是一个工具模块,但几乎用dojo开发的app都会用到这个模块.模块中的方法能够在某些开发场景中避免繁冗的代码,接下来我们一起看看这些工具函数的使用和原理(仅仅是原理的 ...

随机推荐

  1. AFN 请求报 415错误解决方案

    使用 AFHTTPSessionManager  发起请求时 设置下面两句代码 manager.requestSerializer = [AFJSONRequestSerializer seriali ...

  2. 前端之css样式(选择器)。。。

    一.css概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式表,对html标签的渲染和布局 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. 例如 二.c ...

  3. 如何使用PowerShell批量删除Office 365的用户

    概述 本文将演示如何在必要的时候(例如在测试环境),通过PowerShell脚本批量删除Office 365的用户,首先需要通过Get-MsolUser的命令(并且配合筛选条件)获取到符合条件的用户列 ...

  4. 常见的User-Agent及免费代理IP网站

    常见的User-Agent 1.Android Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 ...

  5. Python(文件操作实例)

    给定一个文件:以及给定的字符,比如“a”; 统计字符个数:(可选) # 文件的打开操作f = open("wyl.txt","r")# 文件的读取操作conte ...

  6. last与lastb命令 读取的日志文件

    在linux系统中,last与lastb命令用来列出目前与过去登录系统的用户相关信息.指令英文原义: last, lastb - show listing of last logged in user ...

  7. yarn的安装与使用及与npm对应的命令

    在Nodejs环境下,通过npm install -g yarn 命令进行全局安装 例如:yarn versionyarn inityarn installyarn add vueyarn add v ...

  8. 利用 Windows API Code Pack 修改音乐的 ID3 信息

    朋友由于抠门 SD 卡买小了,结果音乐太多放不下,又不舍得再买新卡,不得已决定重新转码,把音乐码率压低一点,牺牲点音质来换空间(用某些人的话说,反正不是搞音乐的,听不出差别)… 结果千千静听(百度音乐 ...

  9. 【Android】LMK 工作机制

    Android分析之LowMemoryKiller Android Kernel 会定时执行一次检查,杀死一些进程,释放掉内存. 那么,如何来判断,那些进程是需要杀死的呢?答案就是我们的标题:Low ...

  10. BZOJ4036 [HAOI2015]按位或 FWT

    原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ4036.html 题目传送门 - BZOJ4036 题意 刚开始你有一个数字 $0$ ,每一秒钟你会随机 ...