`

在调用sql脚本时动态生成临时表处理

 
阅读更多
定义一张临时表,往里插数据,返回表名
temp_terms_table_name = insert_keywords_into_table(keywords, batch_id, audience_id)
 sql_array << "SELECT 'opx:'||click_opxpid, 'aids', #{audience_id} FROM dw.clickdatas c INNER JOIN dw.searcher se ON c.searcher_id = se.id INNER JOIN #{temp_terms_table_name} t on position(t.term in c.leading_keyword) != 0 WHERE client_id = #{a.client_id} AND c_date >= #{int_date} GROUP BY 1"



def insert_keywords_into_table(arr_keywords, batch_id, audience_id)
        str_table_name = "workspace.audience_terms_#{batch_id}_#{audience_id}"
        Audience.connection.execute("create table #{str_table_name} (term text) with (appendonly = true, compresslevel = 6);") if @keywords_table_created == false
        @keywords_table_created = true
        keywords_string = arr_keywords.collect{|k| "(#{SearchenginePpc.connection.quote(k)})"}.join(",")
        Audience.connection.execute("insert into #{str_table_name} values #{keywords_string};")
        return str_table_name
      end
分享到:
评论

相关推荐

    收获不止SQL优化

    7.3.2 全局临时表案例 190 7.3.3 监控异常的表设计 195 7.3.4 表设计优化相关案例总结 199 7.4 本章习题、总结与延伸 199 第8章 且慢,学习索引如何让SQL飞 200 8.1 索引知识要点概述 201 8.1.1 索引结构的...

    SQL Server 2008编程入门经典(第3版)

    11.4 动态SQL:用ExEC命令动态生成代码 11.5 控制流语句 11.5.1 IFELSE语句 11.5.2 CASE语句 11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 ...

    SQL Server 2008高级程序设计 4/6

     20.6 使用临时表  20.7 及时更新代码  20.8 注意细节问题  20.9 硬件考虑事项  20.10 小结 第21章 性能优化工具  21.1 优化时机(第二部分)  21.2 日常维护  21.3 故障排除  21.4 小结 第22章 ...

    SQL.Server.2008编程入门经典(第3版).part2.rar

    11.4 动态SQL:用ExEC命令动态生成代码 11.5 控制流语句 11.5.1 IFELSE语句 11.5.2 CASE语句 11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 ...

    SQL Server 2008高级程序设计 2/6

     20.6 使用临时表  20.7 及时更新代码  20.8 注意细节问题  20.9 硬件考虑事项  20.10 小结 第21章 性能优化工具  21.1 优化时机(第二部分)  21.2 日常维护  21.3 故障排除  21.4 小结 第22章 ...

    sql性能优化

     b 直接修改后台 根据输入条件 先查出符合条件的供应商 并把相关记录保存在一个临时表里头 然后再用临时表去做复杂关联"&gt;主要描述了sql上的性能优化操作 eg:  1 查询的模糊匹配  尽量避免在一个复杂查询里面...

    SQL.Server.2008编程入门经典(第3版).part1.rar

    11.4 动态SQL:用ExEC命令动态生成代码 11.5 控制流语句 11.5.1 IFELSE语句 11.5.2 CASE语句 11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 ...

    收获,不止SQL优化--抓住SQL的本质

    7.3.2 全局临时表案例 190 7.3.3 监控异常的表设计 195 7.3.4 表设计优化相关案例总结 199 7.4 本章习题、总结与延伸 199 第8章 且慢,学习索引如何让SQL飞 200 8.1 索引知识要点概述 201 8.1.1 索引结构的...

    Visual C++程序开发范例宝典 - 第8章

    实例267 利用SELECT INTO生成临时表 8.3 更新数据 实例268 批量修改数据 实例269 将指定字段数据为空的记录添上数据 8.4 删除数据 实例270 删除单条数据 实例271 删除数据库中无用处的记录 8.5 视图 实例272 动态...

    存储过程的安全及性能优化

    查询优化器是在分析完存储过程之后将生成的执行计划存储在存储过程高速缓冲存储器中,此后每次调用已经创建的存储过程时将直接执行不再需要编译,这样就可以提高程序的运行性能。 执行阶段:指执行驻留在存储过程...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    6.2.1 查看最近生成的SQL语句 149 6.2.2 查看相关执行计划 149 6.2.3 收集执行计划统计信息 151 6.2.4 标识SQL语句以便以后取回计划 153 6.2.5 深入理解DBMS_XPLAN的细节 156 6.2.6 使用计划信息来解决问题 ...

    SQL Server 2008高级程序设计 5/6

     20.6 使用临时表  20.7 及时更新代码  20.8 注意细节问题  20.9 硬件考虑事项  20.10 小结 第21章 性能优化工具  21.1 优化时机(第二部分)  21.2 日常维护  21.3 故障排除  21.4 小结 第22章 ...

    SQL Server 2008高级程序设计 6/6

     20.6 使用临时表  20.7 及时更新代码  20.8 注意细节问题  20.9 硬件考虑事项  20.10 小结 第21章 性能优化工具  21.1 优化时机(第二部分)  21.2 日常维护  21.3 故障排除  21.4 小结 第22章 ...

    SQL Server 2008高级程序设计 1/6

     20.6 使用临时表  20.7 及时更新代码  20.8 注意细节问题  20.9 硬件考虑事项  20.10 小结 第21章 性能优化工具  21.1 优化时机(第二部分)  21.2 日常维护  21.3 故障排除  21.4 小结 第22章 ...

    SQL Server 2008高级程序设计 3/6

     20.6 使用临时表  20.7 及时更新代码  20.8 注意细节问题  20.9 硬件考虑事项  20.10 小结 第21章 性能优化工具  21.1 优化时机(第二部分)  21.2 日常维护  21.3 故障排除  21.4 小结 第22章 ...

    Toad 使用快速入门

     注意,如果是选择了专门建立toad这个用户的话,需要先修改一下脚本,指定用户的默认表空间和临时表空间。 需要使用Oracle8i 的Profile analyzer,必须运行ToadProfiler.sql  需要加强Toad的安全性,必须...

    Oracle 10g应用指导

    主要包括各种类型的表创建以及适用情形,如外部表、分区表、嵌套表、全局临时表等;完整性约束的管理;索引,包括B树索引、基于函数的索引、位图索引、反向索引、降序索引、压缩索引等的使用方法及其适用情形等。在...

    asp.net知识库

    将表数据生成SQL脚本的存储过程 直接从SQL语句问题贴子数据建表并生成建表语句的存储过程 从SQL中的一个表中导出HTML文件表格 获取數据库表的前N条记录 几段SQL Server语句和存储过程 生成表中的数据的脚本 最详细的...

Global site tag (gtag.js) - Google Analytics