Questions tagged «oracle-10g»

Oracle数据库10g(不是10g R2)。请同时标记oracle以进行搜索。

7
Oracle-以任何方式查看对特定表的未提交的更改?
我目前正在通过批处理过程进行调试,该批处理过程执行许多DML语句,但不会立即进行提交。能够在未提交事务的情况下查看另一个会话中的“待处理”更改将是很好的。这可能吗? 例: Insert into table myTable (col1, col2) values ("col1", "col2"); --Somehow view the pending transaction maybe by system view?.... ...other DML statements.... commit;

2
如何在Oracle中声明和使用变量?
我的主要技能是使用SQL Server,但是有人要求我对Oracle查询进行一些调优。我编写了以下SQL: declare @startDate int select @startDate = 20110501 我得到这个错误: declare @startDate int select @startDate = 20110501 Error at line 1 ORA-06550: line 1, column 9: PLS-00103: Encountered the symbol "@" when expecting one of the following: begin function package pragma procedure subtype type use <an identifier> <a double-quoted delimited-identifier> …

7
综合指标:选择性最强的列优先?
我一直在阅读composite indexes有关订购的信息,我有些困惑。该文档(至少不到一半)说 通常,应将预期最常使用的列放在索引的第一位。 然而,不久之后说 创建一个将最有选择性的列放在首位的复合索引;即,具有最多值的列。 甲骨文也在这里说 如果在WHERE子句中平等地使用所有键,则在CREATE INDEX语句中将这些键从最有选择性的顺序排列到最不有选择性的顺序可以最大程度地提高查询性能。 但是,我找到了一个SO答案,但答案却有所不同。它说 排列这些列,其中最不具选择性的列在前,最不具选择性的列在最后。如果是与柱子捆绑在一起,则更可能单独使用。 我引用的第一个文档说您应该首先去最常用的文档,而SO回答则应该只用于平局。然后它们的订购也有所不同。 该文档还讨论skip scanning并说 如果在复合索引的前导列中只有几个不同的值,而在索引的非前导键中有很多不同的值,则跳过扫描是有利的。 另一篇文章说 前缀列应该是查询中最具区分性和最广泛使用的 我相信最有区别的意思将是最独特的。 所有这些研究仍然将我引向同一问题。最有选择性的栏应该在第一还是最后?在抢七局中,第一栏应该是使用最多,选择最多的栏吗? 这些文章似乎相互矛盾,但是它们确实提供了一些示例。从我收集到的信息来看,如果您期望,那么成为订单中least selective column的第一名似乎更有效率Index Skip Scans。但我不确定这是否正确。

1
为什么两周不活动后Oracle会话仍然有效
数据库:Oracle 10g 操作系统:Windows Server 2003 64位 我查询Web应用程序生成的Oracle会话列表(按program = w3wp.exe筛选) select * from V$session where UPPER(program) LIKE '%W3%' order by logon_time 根据Logon_Time,为什么在2012年7月31日或2012年8月1日或今天(2012年8月21日)之前的任何会议中仍存在活动会话? 我在sqlnet.ora上进行了配置:SQLNET.EXPIRE_TIME = 20因此,这意味着Oracle每20分钟检查一次连接是否仍处于活动状态。 所有用户方案都有默认配置文件。这意味着没有会话将永不过期或死亡吗? 在回应Phil的评论时添加: 补充了Phil的回答:

5
无法删除不存在的约束,也不能创建约束
在使用生产数据的副本测试某些迁移脚本(脚本与开发数据运行良好)时,我发现了一个奇怪的情况。约束已更改,因此我正在发出DROP + ADD命令: ALTER TABLE A_DUP_CALLE DROP CONSTRAINT A_DUP_CALLE_UK1; ALTER TABLE A_DUP_CALLE ADD CONSTRAINT A_DUP_CALLE_UK1 UNIQUE ( CONTROL_ID, CALLE_AYTO_DUPL ) ENABLE; DROP命令工作正常,但添加命令失败。现在,我陷入了一个恶性循环。我不能删除该约束,因为它不存在(初始删除按预期方式工作): ORA-02443:无法删除约束-不存在约束 我无法创建它,因为名称已经存在: ORA-00955:名称已被现有对象使用 我输入A_DUP_CALLE_UK1到SQL Developer的“ 搜索”框中,然后就可以了!所有者,表名,表景...一切都匹配:它不是具有相同名称的其他对象,这是我的原始约束。该表出现在约束详细信息中,但约束没有出现在表的详细信息中。 我的问题: 这有什么解释? 在实时服务器中进行真正的升级时,如何确保不会发生这种情况? (服务器为10g XE,我没有足够的声誉来创建标签。)

6
在Oracle SQL查询中创建增量编号
如何在不创建任何表的情况下在oracle sql查询中创建增量编号?我曾尝试使用“ with”子句,但未能获得预期的结果。我正在使用oracle 10g 这是我尝试的代码,它似乎不起作用: WITH TABLE3 AS ( SELECT 2008 YEARS FROM dual WHERE 1=1 union all select t3.YEARS+1 from TABLE3 t3 WHERE 1=1 AND t3.YEARS < 2011 ) select YEARS from TABLE3 我想要的预期结果是: 2008 2009 2010 2011
13 oracle-10g 

1
Oracle数据库中的提交与快速提交与提交清除
我想知道是否有人可以验证我对这三个术语与Oracle数据库之间的区别的理解。 许多消息来源混淆了这些术语,并且没有详细解释它们,因此查找信息有些困难。 从我的收集: 提交和快速提交是完全一样的东西,所有提交都是快速提交。 快速提交实质上仅更新撤消/回滚段头的事务表中的标志,以指示事务已提交。但是,实际块未重新访问,这意味着位于数据块头中的感兴趣的事务列表(ITL)中的撤消字节地址(UBA)仍指向相应撤消段的事务表。此外,不释放相应行的锁定字节,并且ITL中的锁定计数不变(行仍被锁定)。 在提交清除中,将重新访问该块,并使用提交SCN更新ITL。但是,ITL中的锁计数和每行存储的锁字节仍未更新(行仍然像快速提交中一样被锁),即使更改了块也不会生成重做。 正常提交(==快速提交)的块将在下次触摸(并生成重做)时进行延迟块清除。 进行了提交清除的块将在下次被触摸(并生成重做)时进行延迟日志记录块清除。 希望有人可以验证这些观点!谢谢!

2
对多个查询列使用相同的CASE WHEN条件
是否存在一种“更好”的方式来重写SELECT子句,其中多个列使用相同的CASE WHEN条件,以便仅检查条件一次? 请参见下面的示例。 SELECT CASE testStatus WHEN 'A' THEN 'Authorized' WHEN 'C' THEN 'Completed' WHEN 'P' THEN 'In Progress' WHEN 'X' THEN 'Cancelled' END AS Status, CASE testStatus WHEN 'A' THEN authTime WHEN 'C' THEN cmplTime WHEN 'P' THEN strtTime WHEN 'X' THEN cancTime END AS lastEventTime, CASE testStatus WHEN …

3
跟踪,调试和修复行锁争用
迟到了,我遇到了很多行锁争用。争用的表似乎是特定的表。 通常就是这样- 开发人员1从Oracle Forms前端屏幕开始事务 开发人员2使用同一屏幕从不同的会话开始另一笔交易 大约5分钟后,前端似乎没有反应。检查会话显示行锁争用。每个人都抛出的“解决方案”是终止会话:/ 作为数据库开发人员 如何消除行锁争用? 是否有可能找出存储过程的哪一行引起这些行锁争用 减少/避免/消除此类问题的通用准则是什么? 如果您觉得此问题过于开放/信息不足,请随时进行编辑/让我知道-我会尽力补充一些其他信息。 有问题的表有很多插入和更新,我想说它是最繁忙的表之一。SP相当复杂-为简化起见-它从各种表中获取数据,将其填充到工作表中,在工作表上发生许多算术运算,并且将工作表的结果插入/更新到有问题的表中。 数据库版本为Oracle Database 10g企业版10.2.0.1.0版-64位。逻辑流在两个会话中以相同的顺序执行,事务未保持打开状态的时间过长(或至少我认为如此),并且在事务的主动执行过程中发生了锁定。 更新:表行数比我预期的要大,大约为310万行。另外,在跟踪会话后,我发现该表的几个更新语句没有利用索引。为什么会这样-我不确定。where子句中引用的列已建立索引。我目前正在重建索引。

2
通过数据库链接查询是否超时?
编辑/前言: 该问题已从SO迁移过来,因为我对DB链接查询超时问题特别感兴趣。SO所提供的解决方法是可以的,但是我对这个问题本身很感兴趣。 动机: 我有一个查询“永远”运行(超过2天,直到终止会话),它使用数据库链接。问题似乎是远程数据库变得不可用,并且由于某些未知原因ORA-02068(没有在这里讨论)而没有提出(查询在此等待)。 (该查询是由dbms_scheduler作业发出的,该作业在PL / SQL程序包中执行一个过程。因此,该作业也被卡住了。但这对于此问题的核心没有特别的兴趣) 我已经通过将我的一个测试数据库置于静默模式并通过数据库链接对其进行查询来模拟这种情况。如预期的那样,查询一直在等待,直到手动取消或取消取消远程DB。 问题: 我无法控制远程数据库的行为和正常运行时间,因此我正在寻找某种可能性来设置使用数据库链接的查询的超时时间。 我已经研究过配置文件(CPU_PER_CALL等),sqlnet.ora参数,将本地命名参数直接添加到连接字符串中(例如添加(connect_timeout=10)到数据库链接定义中),使用运行命令... for update wait 1,但是它们对于繁忙或空闲会话均有效,但不适用于等待中的会话。 因此,我正在数据库链接的“本地”侧搜索某些选项,该选项为通过数据库链接的查询设置超时。由于我对这些特定的DB没有DBA权限,因此 喜欢alter session set xyz或喜欢一些解决方案select ... from a@b "wait 100" --(yes, I know this syntax doesn't exist)。 我目前使用的是10gR2,但将在几周内升级到11gR2,因此使用这些版本中的任何一个都将很有用。

2
如何找到对象表中似乎不存在的对象?
我有一个名为的对象cot_ntn_pi_v。有人告诉我这是一个同义词。它不会出现在all_synonyms表中。它看起来像一个视图或表,但我不能在所有对象表中找到它。我可以从中选择,但是不能删除它,因为它“不存在”,并且无法创建一个新表,其名称与“该名称已被另一个对象使用”相同。 我会生气还是做一些愚蠢的事情?

4
如何查找Oracle中表上的索引占用的实际空间?
我想查找oracle 10g中的表上的索引占用的实际空间。我不打算包括oracle保留的空间以供将来使用。(不应该考虑oracle的开销。)我希望使用的字节而不是分配的字节。 你能帮助我前进吗? 另外,还有一种方法可以找到表中长字段的实际大小。 PS:vsize()和dbms_lob.getlength()不起作用。

1
Oracle 10g中的SQL替代功能
三,四年前,我在一个Oracle博客上读到某处DBA曾用于紧急事件解决的实时SQL替代的Oracle 10g功能。基本上,他配置Oracle的方式是,每当它收到某个查询A时,它就会执行另一个查询B。无需更改应用程序代码,无需更改架构,只需进行简单的“执行查询B而不是A”类型的配置即可。 不是我打算使用该功能(我会想到一些不良后果),但是出于好奇,它真的存在吗?如果是,该功能称为什么?

2
正确地删除Oracle实例
我想删除在AIX 6.0 OS中创建的oracle实例(oracle 10.2.0.4.0)。我知道我可以删除终端中的所有dbf和ctl文件,但是我认为这不是最好的方法。我认为这一定是一种更清洁的方法。 提前致谢。

5
Oracle使用特殊字符最后对varchar2列进行排序
如何在Oracle中按自己定义的顺序对Varchar2或NVarchar2列进行排序。或者是否存在任何现有选项,这些选项将首先显示字母,然后显示数字,然后显示所有特殊字符。 我们的第一种方法是使用一个将字符手动映射到数字的函数。 select id, sorted_column from some_table order FN_SPECIAL_SORT_KEY(sorted_column,'asc') 特殊的排序功能将每个字符映射到一个2位数字,并将返回值用于排序。这似乎是非常昂贵的连接,并且感觉不对。 for i in 1..length(sorted_text) loop v_result:=v_result || case substr(sorted_text,i,1) WHEN ' ' THEN 82 WHEN '!' THEN 81 WHEN '"' THEN 80 WHEN '#' THEN 79 WHEN '$' .............. WHEN 'u' THEN 15 WHEN 'U' THEN 15 WHEN 'v' THEN …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.