怎么能把拼贴的语句高效的放入临时表(用于可能多人调用的存储过程)
如何能把拼贴的语句高效的放入临时表(用于可能多人调用的存储过程)
现在,我写了个存储过程,由于有很多参数是要靠输入的,所以我只能想到拼贴语句
然后发现只能直接生成实体表,可之后又发现,如果多人同时调用的话就不行了,
之后就改成了一下方法
insert #XXXXXX exec(@sql)
可发现这样插入的太慢,几乎占了我存储过程1/3的时间,而且日志太大了,
所以我想问一下有没有方法,能加快
我也想过先select into 实体表再 select into #XXX 然后drop 实体表,可是 在可能多人调用的情况下这样有可能报错的
希望各位巨巨帮我
------解决思路----------------------
建议优化一下存储过程的写法或分析是否缺少索引导致执行较慢.
------解决思路----------------------
建议分析一下执行计划,看看到底是语句的哪部分开销比较大?如果是查询的部分,则应该优化代码、创建索引、更新统计信息等等;如果是INSERT的部分,看看能不能过滤掉不必要的记录,再不成就得想法改进IO了。
现在,我写了个存储过程,由于有很多参数是要靠输入的,所以我只能想到拼贴语句
然后发现只能直接生成实体表,可之后又发现,如果多人同时调用的话就不行了,
之后就改成了一下方法
insert #XXXXXX exec(@sql)
可发现这样插入的太慢,几乎占了我存储过程1/3的时间,而且日志太大了,
所以我想问一下有没有方法,能加快
我也想过先select into 实体表再 select into #XXX 然后drop 实体表,可是 在可能多人调用的情况下这样有可能报错的
希望各位巨巨帮我
------解决思路----------------------
建议优化一下存储过程的写法或分析是否缺少索引导致执行较慢.
------解决思路----------------------
建议分析一下执行计划,看看到底是语句的哪部分开销比较大?如果是查询的部分,则应该优化代码、创建索引、更新统计信息等等;如果是INSERT的部分,看看能不能过滤掉不必要的记录,再不成就得想法改进IO了。