Performance ColdFusion 8性能缓慢

Performance ColdFusion 8性能缓慢,performance,coldfusion,Performance,Coldfusion,我们已经启动了一个新的CF8应用程序,它运行速度很慢。我们使用ColdFusion(数据库实用程序中的查询)进行的测试显示正常速度(80ms)。CF8在大约60到80秒内返回相同的查询 我一直在网上搜索,看到了很多关于CF8和性能问题的帖子,但没有得到任何解决方案的总体感觉;只是有很多人在尝试,说他们没有CF7的问题。我们还看到服务器上的不稳定性,以及一些与垃圾收集和内存堆相关的错误 我们有许多其他的应用程序在CF8上运行,它们的性能都很好……我们的程序员不是专家或专家,他只是简单地插上插头。我

我们已经启动了一个新的CF8应用程序,它运行速度很慢。我们使用ColdFusion(数据库实用程序中的查询)进行的测试显示正常速度(80ms)。CF8在大约60到80秒内返回相同的查询

我一直在网上搜索,看到了很多关于CF8和性能问题的帖子,但没有得到任何解决方案的总体感觉;只是有很多人在尝试,说他们没有CF7的问题。我们还看到服务器上的不稳定性,以及一些与垃圾收集和内存堆相关的错误

我们有许多其他的应用程序在CF8上运行,它们的性能都很好……我们的程序员不是专家或专家,他只是简单地插上插头。我们已经将其隔离为一个查询,它需要花费很长时间才能返回,因此这不是一个复杂的测试

是否有任何已知的CF8问题或明显的调整,我们应该考虑尝试?如果我们必须重新开始,学习一个新的环境,我永远不会在最后期限前完成


JoeBob

好的,下面是我要做的:

  • 我会输入查询限制1或TOP 1(您拥有的数据库)来查看接下来会发生什么

  • 尝试运行一个查询,该查询将60岁作为页面上的唯一内容。不输出任何内容,只运行查询

  • 如果您发现内存和GC存在一些问题,请关闭调试,取消选中管理员中的所有调试选项

  • 确保CF8附带的监控工具已关闭所有选项

  • 如果这没用,我们可以走得更远

    编辑:第一件可能是问题的事情是返回记录的数量。
    第二,您需要进行大量的数据处理,如果启用调试,页面执行期间发生的所有事情都会被记录下来。我看到服务器在调试时几乎填满了10GB的RAM,而在没有调试的情况下,同样的过程需要40MB。第三种选择是服务器或设置确实有问题。

    根据您上次的解释,问题似乎在于您的查询,而不是CF。您正在运行哪个数据库?表上有索引吗?

    是否需要返回的所有列?您是否正在使用
    选择*
    ?您应该只返回所需的列。即使您没有输出数据,大量数据仍然从数据库传递到web服务器。

    感谢所有人的帮助…我认为,正如建议的那样,问题根本不是CF问题…我们仍在运行测试,以确定PHP中相同查询的时间,条件相当,但我的所有经验都是使用非web应用程序,我只是没有意识到“选择”实际上意味着“选择并将所有数据传输到web服务器”,即使没有任何输出到屏幕上。传输到20000多条记录(包括许多不需要的字段)需要花费大量时间。早些时候我被告知数据库服务器在此延迟期间未处于活动状态,结果证明这是错误的信息。我不得不绕过程序员,让管理员查看性能监视器,以确定这显然是错误的;传输数据需要时间和带宽


    JoeBob

    那么,使用数据库客户端运行查询需要80毫秒,但是通过ColdFusion的CFQUERY执行完全相同的查询需要60-80秒?同一应用程序中的其他查询是否需要正常的时间?Coldfusion 8有一个非常好的服务器监视器-您对此进行过调查吗?如果启用所有3个监视选项,则可以确切地看到代码挂起的位置,也可以看到正在运行的DB查询。数据库服务器是否也报告此查询需要60-80秒?或者,对于DB服务器来说,查询运行得很快?我的经验和我在CF show 8上关注的大多数博客都比7有很大改进。您是否应用了所有修补程序和修补程序?为什么不共享查询?是的,它已被隔离为单个查询…在我们等待查询返回时,数据库服务器上只有一小段活动…因此,是的,对于DB服务器,查询正在快速运行。我不知道我们是否已经应用了所有补丁和修补程序,我们会发现。我们已经尝试了前100名,但查询仍然需要相同的时间或更长的时间才能返回。它现在是页面上唯一的东西,我们没有输出,只是按照您的建议运行查询。查询返回的记录越多,所用的时间就越长。如果它只返回几条记录,则需要几秒钟的时间才能返回,但仍然太慢。但如果它返回数千条记录,则需要一分钟左右的时间。但是,我们在测试中并没有输出任何东西,我们只是在做选择。我将检查调试选项除了使用什么数据库、什么协议和驱动程序连接到它之外?ODBC还是JDBC?我最近在SQLServer2005中遇到了一个问题,使用SSL JDBC驱动程序运行一个使用cfsqltype=“CF\u SQL\u VARCHAR”的CFQUERYPARAM的查询需要花费很长时间。使用存储过程而不是查询解决了延迟问题。