是否使用绷定变量的一些建议

1、建议使用绑定变量的列:对于流水号、订单号、用户ID、电话号码、身份证
号码、证件号码等,这类列的特点是列的唯一性较好、列的不同值数量跟表的
数据量比较接近,而这类列涉及的SQL语句往往存在高并发,写成绑定变量会
大大减少数据库的解析成本。

2、不建议使用绑定变量的列:能够枚举的列(比如状态类型字段,这部分类型
字段往往不同值较少,一般即使上千万的数据表中该列也只有十多个、几十个
的不同值), 即使不写绑定变量也只会产生极少数的SQL_id,这部分的oracle
解析消耗微乎其微,并且这种类型的列有可能存在倾斜数据,而如果使用绑定
变量,则对于倾斜数据的评估并不准确,可能导致该列无法走索引范围扫描、
或者影响表JOIN阶段驱动表的选择等。

时间: 2024-12-25 04:05:57

是否使用绷定变量的一些建议的相关文章

10046事件跟踪会话sql

背景知识: 10046 事件按照收集信息内容,可以分成4个级别: Level 1: 等同于SQL_TRACE 的功能 Level 4: 在Level 1的基础上增加收集绑定变量的信息 Level 8: 在Level 1 的基础上增加等待事件的信息 Level 12:等同于Level 4+Level 8, 即同时收集绑定变量信息和等待事件信息. 一: 跟踪当前会话sql 1. sys用户给执行跟踪dblink用户授权SQL> grant alter session to dblink; Grant

shell脚本与命定

变量.函数的定义与引用,其表达方法很多,我选下面这种: 变量名=`命定`   #变量定义 $变量名       #变量的引用 函数名() { 命定1: 命定2: ..... }          #函数的定义 函数名      #函数的引用 例如我第一篇博文里的 user_add() { id smbmin &>/dev/null;  #smbmin是已经存在的用户 while (($?==0)) do read -p "please input user name:"

makefile(02)_变量

4.变量与赋值 4.1.变量 Makefile中支持程序设计语言中变量的概率,但没有变量类型,只代表文本数据:变量命名规则:变量可以包含字符.数字.下划线,单不能包含":","#", "="," ",变量名大小写敏感.变量的定义和使用: 4.2.赋值 Makefile中有4中变量赋值方式: 4.2.1.简单赋值(:=) 程序设计语言中的通用赋值方式,只针对当前语句有效,等价于C语言中的赋值.建议无特殊要求时使用简单赋值. x

基本shell脚本的边界及变量

 shell脚本与变量  shell脚本的用途: 自动化常用命令 执行系统管理和故障排除 创建简单的应用程序 处理文本或文件  shell脚本编写格式: 第一行:shebang机制 用#加shell类型开头 后续可直接跟命令,用命令达到需要的效果即可 如需内容注释行首加#即可 例如: #/bin/bash #testcat /etc/passwd  shell脚本执行方法: bash /绝对路径 加入$PATH变量,给脚本文件添加执行权限,然后直接输入脚本文件名即可运行 cat /脚本路径 |

java基础--JDK安装、环境变量配置、工具开发第一个程序、数据类型、运算符

**-----Java基础大纲-----**   **-----本章节-----** 1.Java语言的历史.特点及工作原理 2.JRE和JDK的介绍 3.Java运行环境和开发工具 4.Java基础语法 **-----下一章节-----** 5.条件语句 6.循环 7.数组 ============================================== 一:历史及开发准备 1.Java发展历程及来源 (1)发展历程 1996年1月,Sun公司发布了Java的第一个开发工具包(JD

绑定变量

从一个简单的示例入手: package dbtest; import java.sql.*; public class Dbtest { public static final String drive = "oracle.jdbc.driver.OracleDriver"; public static final String url = "jdbc:oracle:thin:@//192.168.196.200:1521/orcl2pdb"; public sta

Shell学习笔记 - Shell变量

一.变量的命名 变量名必须以字母或下划线开头,由字母.数字.或下划线组成,变量名的长度不能超过255个字符. 二.变量的分类 1. 用户自定义变量 2. 环境变量 3. 位置参数变量 4. 预定义变量 三.用户自定义变量 用户自定义变量是“局部变量”,只能在当前的Shell中生效 1. 定义变量 变量名=变量值 示例: 注意:等号前后不能有空格,否则会出现以下错误提示: 2. 变量调用 $变量名 或 ${变量名} 示例: 3. 变量叠加 示例: 或: 4. 删除变量 unset 变量名 示例:

oracle数据库规划建议

之前负责的项目有用到oracle的,oracle dba给过一些建议,自己整理了一下,写再这里做个备忘 数据库需求分析: 1. 创建的数据库名称为maildb,并且字符集为UTF8. 2. 提供可连接到数据库的用户名和密码来使用数据库. 3. 将数据库的最大连接数至少调整到500 4. 数据库备份建议: 开启日志归档,开启RAM中自动备份控制文件, 设置自动备份策略: 每周日进行全备份,周一至周六进行差异备份. 保留最近半个月的备份,清除半月以前的备份. 建议备份文件放置不同的分区. 5. 数据

转载-------编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议1~5)

阅读目录 建议1:不要在常量和变量中出现易混淆的字母 建议2:莫让常量蜕变成变量 建议3:三元操作符的类型务必一致 建议4:避免带有变长参数的方法重载 建议5:别让null值和空值威胁到变长方法              The reasonable man adapts himself to the world; The unreasonable one persists in trying to adapt the world himself. 明白事理的人使自己适应世界:不明事理的人想让世