Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 实体框架-简单查询需要3分钟完成_Oracle_Entity Framework 6_Devart - Fatal编程技术网

Oracle 实体框架-简单查询需要3分钟完成

Oracle 实体框架-简单查询需要3分钟完成,oracle,entity-framework-6,devart,Oracle,Entity Framework 6,Devart,我首先在Oracle数据库中使用Entity Framework 6代码(使用Devart DotConnect for Oracle) 对于具有SingleOrDefault的特定查询,完成查询需要1秒: -- Executing at 08.10.2019 10:04:04 +02:00 -- Completed in 1211 ms with result: d 但是,在连接关闭之前,3,5分钟内不会发生任何事情: Closed connection at 08.10.2019 10:0

我首先在Oracle数据库中使用Entity Framework 6代码(使用Devart DotConnect for Oracle)

对于具有SingleOrDefault的特定查询,完成查询需要1秒:

-- Executing at 08.10.2019 10:04:04 +02:00
-- Completed in 1211 ms with result: d
但是,在连接关闭之前,3,5分钟内不会发生任何事情:

Closed connection at 08.10.2019 10:07:41 +02:00
在此期间,数据库服务器的CPU将上升到100%

如果我直接在数据库上执行相同的查询,速度会非常快

如果我稍微修改一下LINQ查询,它也会非常快

您是否知道我可以尝试找出问题的根源,以及为什么直接执行查询和从实体框架执行查询之间存在差异

  • 启用并指定EF提供程序生成的SQL

  • 检查dbMonitor中的参数窗口,确保在WHERE条件中使用的参数的数据类型与相应列的数据类型相同

  • 告诉我们您的Oracle服务器的版本和版本


  • 非常感谢。参数类型为“Varchar”,列类型为“varchar2(4000)”。数据库版本是Oracle 11g-11.2.0.3.01。出于测试目的,将“Pooling=false;”添加到连接字符串中。这个问题在这种情况下持续存在吗。问题是否特定于特定的表?或者它发生在所有表和所有查询中?1。是的,问题依然存在。2.问题特定于特定客户数据库上的特定表,甚至特定查询(已经发生两次)。如果删除联接或WHERE条件,查询将立即返回。。。找到问题的根源可能很复杂。我试图理解的是,如果我直接在数据库上运行查询,为什么查询会很快。也许你有个主意。给我们你的LINQ查询。2.启用dbMonitor并指定生成的SQL语句及其参数的数据类型。3.通过OracleCommand运行相同的SQL查询,性能问题是否与通过EF LINQ查询相同?