ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

SAP HANA 中为什么要尽量避免动态 SQL

SAP HANA 中为什么要尽量避免动态 SQL 月末销售报表有个常见需求,业务人员选择公司代码、日期区间和订单状态,系统据此汇总销售额。开发时很容易想到一条捷径,把输入值拼进一段SELECT字符串,再交给EXECUTE IMMEDIATE执行。功能看起来很快就能做出来,条件变化也显得灵活。可一旦报表被频繁调用,这种写法就会把原本可以提前确定的查询结构,留到每次运行时再处理。SAP HANA 的SQLScript允许在存储过程执行期间构造并运行SQL。这就是动态SQL的价值。当列名、表名或者查询结构确实只能在运行时决定,它能解决静态语句无法直接表达的问题。但对于公司代码、日期、金额阈值这类普通数据值,拼接语句通常没有必要。把值作为变量传入静态SQL,数据库能够更早检查类型、认识查询结构,并获得更稳定的优化空间。来看一段简化的销售查询。DEMO_SALES是为说明问题而设的示例表,包含公司代码、订单状态和销售金额等字段。下面的写法把筛选值直接拼进查询文本。DOBEGINDECLARElv_company NVARCHAR(10
返回列表