免责声明:我刚刚开始研究新合同,这迫使我从MSSQL切换到Oracle。所以我是Oracle的全新人,可能会给我带来许多糟糕的MSSQL实践。好的,关于这个问题......
根据an answer in this thread,分号是坏的,应该避免。我花了好几个小时试图弄清楚为什么我的查询在SQL Developer中运行速度非常慢,我意识到了这一点。从复杂查询结束时删除分号后,它在几秒钟内完成(与我在几分钟后放弃它相比,在删除分号之前就是这种情况)。这种行为让我吃了一惊,谷歌搜索没有多少关于我应该或不应该在我的SQL语句中使用分号的时间和原因。任何人都可以通过简短的解释来解决这个问题吗?
如果您有任何关于开发人员从MSSQL迁移到Oracle的在线资源的链接,那么我将非常感激!
谢谢!
答案 0 :(得分:15)
这不是分号。重新运行相同的查询意味着行已经被缓存,因此您可以更快地恢复它们。
答案 1 :(得分:4)
我来自5年以上的MS SQL经验和4年以上的Oracle开发。 我知道你会讨厌很多Oracle特性,特别是在SQL中;)但是要放轻松。 Oracle是一个非常强大的DBMS。即使从很多角度来看,我更喜欢MSSQL而不是Oracle,但这是一个不同的主题。
关于你的问题:
分号只是一个语句分隔符。
SQL开发人员正在使用Java和OCI,因此您可能会遇到不同的问题(我只是猜测某些事情可能是错误的)。
如果您觉得某些内容运行不正常,我建议您使用SQLPLUS而不是Visual Query Tools来运行该查询,因为它会给您正确的感觉。
Oracle开发祝你好运。
访问SQL*Plus FAQ。
答案 2 :(得分:2)
这是一本非常有用的书 凯文和丹尼尔克莱恩在果壳中的SQL
这具有Oracle和SQl服务器的语法,因此如果您知道如何在t-SQL中编写,则可以轻松地查看如何将内容转换为Oracle语法。
答案 3 :(得分:1)
作为PowerBuilder,Java,.NET和TOAD的开发人员与Oracle合作了10多年,这听起来很奇怪。
我建议使用解释计划来查找正在发生的事情并确保数据库健康,并使用适当的统计数据和索引。
从早期版本的Oracle我记得使用基于规则的优化可能会导致这些性能问题,但最近基于成本的优化和统计已经使这些问题成为过去。