|
10
|
| Greg Smalter · 技术社区 · 15 年前 |
|
|
1
12
它与odp.net提供程序无关。问题是,我们用来为我们创建连接的库(当然,Oracle SQL开发人员没有使用它,而且我在尝试Microsoft提供程序时没有使用它)总是在执行任何操作之前执行以下语句:
这使得Oracle不区分大小写。但是,它们也使得所有常规索引都变得无用。因为我们是从视图中查询的,所以它内置了排序功能。因为我们没有数据库,所以我们不能用语言化的索引来解决性能问题。 提供一种不在这个(很少)场景中执行这些语句的方法解决了这个问题。 |
|
|
2
4
直接的想法是
建议
|
|
|
3
2
视图增加了不同程度的复杂性。 “从表中选择列,其中rownum<5”可能只有一个解释计划,从单个本地对象中选择数据。
对于视图,应该从获取视图文本开始
odp.net和SQL开发人员会话之间有很多不同之处。我会考虑NLS参数(如日期格式)和字符集设置。 如果你能在v$sql中找到SQL,你可以做一个dbms-xplan.display-cursor(sql-id)来查看不同的计划,看看你是否能找出问题所在。 |
|
|
4
0
在我前雇主的一个项目中,我们使用odp.net与一个大型零售系统数据库交谈,我们会发现连接丢失错误。 这需要花费大量的努力来证明,但最终它成为了Oracle数据库中的一个损坏索引,而这个索引只受到我们查询的影响。DBA最终将其跟踪到执行查询时在Sun Box上运行的进程的核心转储。我们没有使用任何类型的查询提示等,但是当我们在toad中运行相同的查询时,它没有命中这个特定的索引。奇怪?& & lt; |