-
oracle避免在索引列上使用NOT
所属栏目:[站长百科] 日期:2021-01-18 热度:107
通常, 我们要避免在索引列上使用NOT,NOT会产生在和在索引列上使用函数相同的 影响. 当ORACLE”遇到”NOT,他就会停止使用索引转而执行全表扫描. ?? 举例: ?? 低效: (这里,不使用索引) ?? SELECT … ?? FROM DEPT ?? WHERE DEPT_CODE NOT = 0; ?? ?? 高效: ([详细]
-
oracle pivot / unpivot
所属栏目:[站长百科] 日期:2021-01-18 热度:121
1.pivot 行转列 ? ?pivot 用法: select ... from ...pivot -- 注意:在from 与where 之间的关键字 (pivot_clause pivot_for_clause pivot_in_clause) where ...( 1 )pivot_clause:定义要进行聚集的列;( 2 )pivot_for_clause:定义要分组和转置的列;( 3 )pi[详细]
-
oracle多个平等的索引
所属栏目:[站长百科] 日期:2021-01-18 热度:75
当SQL语句的执行路径可以使用分布在多个表上的多个索引时,ORACLE会同时使用多个索引并在运行时对它们的记录进行合并,检索出仅对全部索引有效的记录. 在ORACLE选择执行路径时,唯一性索引的等级高于非唯一性索引. 然而这个规则只有 当WHERE子句中索引列和常量[详细]
-
oracle CBO下使用更具选择性的索引
所属栏目:[站长百科] 日期:2021-01-18 热度:117
基于成本的优化器(CBO,Cost-Based Optimizer)对索引的选择性进行判断来决定索引的使用是否能提高效率. 如果索引有很高的选择性,那就是说对于每个不重复的索引键值,只对应数量很少的记录. 比如,表中共有100条记录而其中有80个不重复的索引键值. 这个索引的选[详细]
-
使用提示(Hints)
所属栏目:[站长百科] 日期:2021-01-18 热度:170
对于表的访问,可以使用两种Hints. FULL 和 ROWID FULL hint 告诉ORACLE使用全表扫描的方式访问指定表. 例如: ?? SELECT /*+ FULL(EMP) */ * ?? FROM EMP ?? WHERE EMPNO = 7893; ?? ROWID hint 告诉ORACLE使用TABLE ACCESS BY ROWID的操作访问表. ?? 通常,你[详细]
-
oracle避免改变索引列的类型
所属栏目:[站长百科] 日期:2021-01-18 热度:85
当比较不同数据类型的数据时,ORACLE自动对列进行简单的类型转换. 假设 EMPNO是一个数值类型的索引列. SELECT … FROM EMP WHERE EMPNO = ‘123’ 实际上,经过ORACLE类型转换,语句转化为: SELECT … FROM EMP WHERE EMPNO = TO_NUMBER(‘123’) 幸运的是,类型[详细]
-
oracle连接多个扫描
所属栏目:[站长百科] 日期:2021-01-18 热度:178
如果你对一个列和一组有限的值进行比较,优化器可能执行多次扫描并对结果进行合并连接. 举例: ??? SELECT * ??? FROM LODGING ??? WHERE MANAGER IN (‘BILL GATES’,’KEN MULLER’); ??? 优化器可能将它转换成以下形式 ??? SELECT * ??? FROM LODGING ??? W[详细]
-
oracle优化EXPORT和IMPORT
所属栏目:[站长百科] 日期:2021-01-18 热度:156
使用较大的BUFFER(比如10MB,10,240,000)可以提高EXPORT和IMPORT的速度. ORACLE将尽可能地获取你所指定的内存大小,即使在内存不满足,也不会报错.这个值至少要和表中最大的列相当,否则列值会被截断. 译者按 : 可以肯定的是 , 增加 BUFFER 会大大提高 EXPORT,IM[详细]
-
oracle用WHERE替代ORDER BY
所属栏目:[站长百科] 日期:2021-01-18 热度:72
ORDER BY 子句只在两种严格的条件下使用索引. ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序. ORDER BY中所有的列必须定义为非空. WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列. 例如: ????? 表DEPT包含以下列: ??????? D[详细]
-
oracle 需要当心的WHERE子句
所属栏目:[站长百科] 日期:2021-01-18 热度:110
某些SELECT 语句中的WHERE子句不使用索引. 这里有一些例子. 在下面的例子里,‘!=’ 将不使用索引. 记住,索引只能告诉你什么存在于表中,而不能告诉你什么不存在于表中. 不使用索引: SELECT ACCOUNT_NAME FROM TRANSACTION WHERE AMOUNT !=0; 使用索引: SELECT[详细]
-
oracle instantclient_12_2安装
所属栏目:[站长百科] 日期:2021-01-18 热度:89
下载地址 http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html 选择: Instant Client for Linux x86-64 1)下载以下两个ZIP包: instantclient-basic-linux.x64-12.2.0.1.0.zip instantclient-sqlplus-[详细]
-
如何从表中分离分区并将其附加到oracle中的另一个分区?
所属栏目:[站长百科] 日期:2021-01-17 热度:196
我有一张包含大量数据的表(比如数百万条记录,只是一个案例研究!)5年,每年都有一个分区.现在我想保留最近2年的数据,并将剩下的3年数据转移到一个名为archive的新表中? 什么是理想的方法,最短的停机时间和高性能? 解决方法 alter table exchange partition[详细]
-
oracle – 在日期中使用通配符搜索查询
所属栏目:[站长百科] 日期:2021-01-17 热度:109
我正在尝试根据日期搜索数据库以获取记录.但搜索基于月份和年份.即mm / yyyy和dd是外卡. 我的搜索查询如下所示: Select ucid,uc_name,From (UC_Table1)where UC_Date like To_Date('11/*/2011','mm/dd/yyyy') 这给了我以下错误: ORA-01858:找到一个非数字[详细]
-
在Oracle过程中实现多线程
所属栏目:[站长百科] 日期:2021-01-17 热度:107
我正在研究Oracle 10gR2. 这是我的问题 – 我有一个程序,让我们调用它* proc_parent *(在一个包内)应该调用另一个程序,让我们调用它* user_creation *.我必须在循环中调用* user_creation *,这是从表中读取一些列 – 这些列值作为参数传递给* user_creation[详细]
-
Oracle SQL – 可以在检查约束中使用CASE来确定数据属性吗?
所属栏目:[站长百科] 日期:2021-01-17 热度:50
我正在使用Oracle 10g,我想将约束应用于一个表,其中为一列输入的值确定另一列是IS NULL还是IS NOT NULL. Column1只能包含1或0; Column2是VARCHAR2(255). 我知道以下工作: CONSTRAINT ck_1 CHECK ((col1=1 AND col2 IS NOT NULL) OR (col1=0 AND col2 IS NUL[详细]
-
Oracle – 审计跟踪
所属栏目:[站长百科] 日期:2021-01-17 热度:177
oracle是否将Audit Trail作为内置功能? 我是否需要为审核日志目的创建单独的表来捕获INSERT,UPDATE和DELETE更改? 解决方法 是的,Oracle确实支持审计.您不需要自己创建审计表,但是您需要配置审计设置(即要审计的表/用户/查询). http://download.oracle.com/[详细]
-
Oracle – 验证用户和密码而不打开另一个连接?
所属栏目:[站长百科] 日期:2021-01-17 热度:154
是否有一些函数/过程/包验证Oracle中的用户名和密码(来自db中存在的用户)? 背景:我们想要创建一个使用连接池的Web应用程序.由于传统的6i应用程序,所有用户都已存在于数据库中.因此,我们认为最好的方法是验证数据库的用户和密码,但我们不想硬编码网址并打开[详细]
-
Oracle:如何检测客户端进程终止,就像它适用于sqlplus一样?
所属栏目:[站长百科] 日期:2021-01-17 热度:127
我的应用程序中连接到Oracle 10g数据库时出现以下问题: 当我的客户端崩溃,或者通过任务管理器终止进程,或者客户端暂时失去连接时,v $session视图中的相应条目仍然存在. 现在,当我使用sqlplus连接数据库,并通过任务管理器杀死sqlplus.exe时,会话条目几乎立即[详细]
-
在Oracle SQL中输出到屏幕
所属栏目:[站长百科] 日期:2021-01-17 热度:154
我已经广泛搜索了如何在Oracle SQL中输出消息.我已经阅读了很多关于dbms_output.put_line和dbms_output.get_line的内容,并尝试使用这两种方法,但我无法工作.使用Oracle SQL Developer版本2. 解决方法 我不确定你正在使用什么应用程序,但是,通常,要将DBMS_OUT[详细]
-
oracle-apex – 带[行选择器]的APEX表格形式:如何在提交时设置
所属栏目:[站长百科] 日期:2021-01-17 热度:94
我有一个表格形式,显示提交进行处理的所有请求.提交者有机会随时取消请求.我希望通过简单地检查应该取消的行的行选择器复选框并单击提交来完成此操作. 好的…我想要创建的是一个表格形式,当选中[行选择器]复选框并提交表单时,行的“状态”列中的值设置为“已[详细]
-
连接池 – Oracle ODP.Net和连接池
所属栏目:[站长百科] 日期:2021-01-17 热度:185
这是我猜的两个问题. 我们开发了一个访问Oracle数据库的.Net应用程序,并注意到在更改用户的Oracle密码后,应用程序会在连接字符串中使用旧密码继续工作一小段时间.据推测,这与现有连接的汇总方式有关? 在第一次调查时我们尝试关闭连接字符串中的池,但是应用[详细]
-
更新表时Oracle挂起
所属栏目:[站长百科] 日期:2021-01-16 热度:50
我正在用声明更新表 update asdf123 set state='Rlzd' where documentname = '11212121212' and superseded = '-'; 但它无限期地挂起. 我检查了会话,得到了一个绞死的会话,然后杀了它,上面的会话被杀了.同样的情况也会发生. 可能是什么原因? 解决方法 我想[详细]
-
Oracle中的动态列名称
所属栏目:[站长百科] 日期:2021-01-16 热度:200
我正在尝试动态设置列标题. 这里的例子如下: SELECT Name,COUNT(cars) AS (('cars_from_year_') || year)FROM peaple WHERE car = 'GM'AND Date BETWEEN (year || '0401') AND (year || '0430'); 这一年应该是前者. 2012年和每年(2013,2014,…)的变化(即这[详细]
-
Oracle数据库在到达列中指定的时间时发送通知/调用java方法
所属栏目:[站长百科] 日期:2021-01-16 热度:189
我有一张表有事件详情.新记录将由另一个进程连续插入此表.该表有一个Event-end-time列. 我必须设计一种机制来调用java方法来处理事件到达事件结束时间.我的一些选择是: 连续查询数据库(每1分钟一次),找到要处理的下一个最新报告,并在到达结束时间时调用它.[详细]
-
在oracle SQL语句中结合order by子句使用rownum
所属栏目:[站长百科] 日期:2021-01-16 热度:199
以下两个SQL语句中的哪一个将返回所需的结果集(即状态= 0和最高StartTimes的十行)? 两个语句是否总是返回相同的结果集(StartTime是唯一的)? SELECT * FROM MyTable WHERE Status=0 AND ROWNUM = 10 ORDER BY StartTime DESCSELECT * FROM ( SELECT * FROM[详细]
