当前位置:  开发笔记 > 编程语言 > 正文

如何运行一个非常大的查询(SQL Server和ColdFusion)

如何解决《如何运行一个非常大的查询(SQLServer和ColdFusion)》经验,为你挑选了2个好方法。

我有一个相当简单的查询(这次)我需要所有结果(我将它们存储在Excel电子表格中).查询本身会使服务器超时,那么如何在不发生这种情况的情况下运行它?



1> Adam Ness..:

您可以增加页面的请求超时:


这将确保您有时间处理所有条目.

您可能还想将列表分成"块".需要进行一些调整以找出最佳块大小,但是您可以一次获取100或1000行结果,并使用将结果推送到屏幕,因为它们可用.这种方法还具有在coldFusion服务器上使用更少内存的优势,因为从SQL服务器撤回的每一行都被加载到CFML内存中,并且坐在那里直到查询对象变量被覆盖或超出范围(在结束时)这页纸).这意味着你可以很容易地填充读取数十万行的coldFusion内存,特别是如果行是"宽"的(即包含大的varchars或文本).



2> rip747..:

首先,我会检查为什么这个查询花了这么长时间.

您可以在数据库级别做什么来提高查询的性能.听起来好像你没有正确索引数据库.接受查询并将其放入一些程序中,您可以分析执行计划.寻找滞后并解决它们.

为了获得更高的性能,如果您的数据库支持那种东西,请考虑创建索引视图.

接下来看一下缓存查询的某些部分.没有理由对每个请求进行历史数据计算,只要它可以执行一次,然后在某个表中缓存.

至于冷冻结束.确保您使用java.io.BufferedWriter来创建电子表格.在CF中使用正常的字符串连接方法是狗慢,而BufferedWriter是无限快的.附件是我创建的用于创建标签分隔电子表格的CFC,您可以根据自己的需要对其进行修改.



    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    





    
    




    
    




    
    




    

    
    
    
    
        
        
    

    
        
    

    
    
        
            
        
        
    

    
    
    
    
    

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有