Open SQL WHERE 不同长度字符之间的条件
Open SQL WHERE Condiition between Chars with different length
我想在 select 语句的 where 子句中比较两个类型为 char 的变量。数据库变量table的长度为40,比较变量为32,是否可以在where条件下只比较数据库变量的前32个字符?什么时候可以,我该怎么做?如果不可能,我的替代方案是什么?数据库有超过 300.000 个条目,所以我不能在内部 table.
中循环所有条目
欢迎你,小程序员。
首先我想说,并指出这些(如果您不感兴趣,请向下滚动到我的推荐答案):
数据库有超过 300.000 个条目。
你肯定是说,数据table,你要从select,对吧?
整个数据库的 300.000 个条目是花生。
我假设 table 中有 300.000 个条目。你不能循环?你当然可以。
这些时代结束了,伙计,300.000 是今天不断增长的标准。
你知道,为什么云、大数据、hana、内存数据存储等会进化吗?
但在这种情况下(据我所知,循环更多数据并不是很好,然后有必要)有一些步骤可以在完整后缩小数据-table -扫描。
让我们先来处理这个词。
1.避免完全-TABLE-扫描。只要有可能。
你总是需要查看,以获得一些 where-parameters
正确定义您的条件。主要有一些值
用作where条件。还要检查现有索引的可用性。
2。 OMIT SELECTING * from into corresponding.
有时两个 select 比一个大更好,特别是,当
数据越来越大。对于这种情况,创建一个类型很有用
对于内部 table,它只保存记录的键,它
select 不是 keys/foreign 键。此外,您还可以添加
where-clause-params 作为字段,或者在你的情况下,这些字符字段(在
一般字段,将对其进行处理以缩小结果范围)。
然后 select 只有那些需要的字段进入内部 table.
3。使用所有数据库函数,您可以使用
这将传递 RDBMS 可以完成的所有工作,而不是稍后
在 AS 上必须是 运行。聚合、无重复、求和等...
4.你知道你的数据库吗?然后使用它的提示
与第 4 点类似,这会将执行传递给 rdbms,resp。这
数据库计算机,其中优化了 rdbms 运行s,这可能可以做到
事情更好。这应该非常谨慎地使用。
5.你知道结果的大小吗?选择正确的内部table
三件事结合在一起:内部类型 table、结果数量、
用作 "read-table/loop at".
条件的可用值
哈希 tables ?最快的。它们消耗大量内存。尤其
对于大型结构。但是你可以定义,你想如何创建它们。
具有许多记录的小型结构化内部 table 可以更快,并且消耗
更少的内存,然后是一个记录更少的大结构。这个应该验证
在决定之前的跟踪,在高流量高峰时间。
已排序 tables ?最好,如果你有一个数字键,和一个小结构。
这主要是散列后最快的组合。
标准-tables ?你现在可能会自己解释这个。
键?必要时合并,但尽量使用一个主键。
这些是性能方面的一些重要提示。
曾经,你处于这样的情况,你有你的(可能结果太大),特别是在你的情况下,你可以删除内部 table 其中字符串不包含 where 的模式条款。
这是一个宏,对于类似的事情,一个循环就可以了,但我认为,它更快。
"CP"是包含模式,"NP"是不包含模式。
这可能会缩小结果。
答案是备选方案列表?没有!
为什么我要写这个,post 把它作为答案?在没有答案的情况下,这至少是一个最近的点,可以作为替代。
在我们的 SAP 环境中,我们有这样的答案:
http://scn.sap.com/thread/1786222
结论:
创建一个范围 table,使用 "CP" 作为选项,使用 "I" 作为符号。
将 where-condition-value 传递给 low。
使用 "in blabla"
执行 select
我想在 select 语句的 where 子句中比较两个类型为 char 的变量。数据库变量table的长度为40,比较变量为32,是否可以在where条件下只比较数据库变量的前32个字符?什么时候可以,我该怎么做?如果不可能,我的替代方案是什么?数据库有超过 300.000 个条目,所以我不能在内部 table.
中循环所有条目欢迎你,小程序员。 首先我想说,并指出这些(如果您不感兴趣,请向下滚动到我的推荐答案):
数据库有超过 300.000 个条目。 你肯定是说,数据table,你要从select,对吧? 整个数据库的 300.000 个条目是花生。
我假设 table 中有 300.000 个条目。你不能循环?你当然可以。 这些时代结束了,伙计,300.000 是今天不断增长的标准。 你知道,为什么云、大数据、hana、内存数据存储等会进化吗?
但在这种情况下(据我所知,循环更多数据并不是很好,然后有必要)有一些步骤可以在完整后缩小数据-table -扫描。 让我们先来处理这个词。
1.避免完全-TABLE-扫描。只要有可能。
你总是需要查看,以获得一些 where-parameters 正确定义您的条件。主要有一些值 用作where条件。还要检查现有索引的可用性。
2。 OMIT SELECTING * from into corresponding.
有时两个 select 比一个大更好,特别是,当 数据越来越大。对于这种情况,创建一个类型很有用 对于内部 table,它只保存记录的键,它 select 不是 keys/foreign 键。此外,您还可以添加 where-clause-params 作为字段,或者在你的情况下,这些字符字段(在 一般字段,将对其进行处理以缩小结果范围)。 然后 select 只有那些需要的字段进入内部 table.
3。使用所有数据库函数,您可以使用
这将传递 RDBMS 可以完成的所有工作,而不是稍后 在 AS 上必须是 运行。聚合、无重复、求和等...
4.你知道你的数据库吗?然后使用它的提示
与第 4 点类似,这会将执行传递给 rdbms,resp。这 数据库计算机,其中优化了 rdbms 运行s,这可能可以做到 事情更好。这应该非常谨慎地使用。
5.你知道结果的大小吗?选择正确的内部table
三件事结合在一起:内部类型 table、结果数量、 用作 "read-table/loop at".
条件的可用值哈希 tables ?最快的。它们消耗大量内存。尤其 对于大型结构。但是你可以定义,你想如何创建它们。 具有许多记录的小型结构化内部 table 可以更快,并且消耗
更少的内存,然后是一个记录更少的大结构。这个应该验证 在决定之前的跟踪,在高流量高峰时间。已排序 tables ?最好,如果你有一个数字键,和一个小结构。 这主要是散列后最快的组合。
标准-tables ?你现在可能会自己解释这个。
键?必要时合并,但尽量使用一个主键。
这些是性能方面的一些重要提示。
曾经,你处于这样的情况,你有你的(可能结果太大),特别是在你的情况下,你可以删除内部 table 其中字符串不包含 where 的模式条款。 这是一个宏,对于类似的事情,一个循环就可以了,但我认为,它更快。 "CP"是包含模式,"NP"是不包含模式。 这可能会缩小结果。
答案是备选方案列表?没有!
为什么我要写这个,post 把它作为答案?在没有答案的情况下,这至少是一个最近的点,可以作为替代。
在我们的 SAP 环境中,我们有这样的答案:
http://scn.sap.com/thread/1786222
结论:
创建一个范围 table,使用 "CP" 作为选项,使用 "I" 作为符号。 将 where-condition-value 传递给 low。 使用 "in blabla"
执行 select