应该在pl / sql中使用哪种方法(下面提到)

时间:2014-07-07 13:09:41

标签: mysql sql oracle select filter

我有一个存储过程,其中创建了一个临时表。

有16种不同的select语句,用于通过一次使用4个表上的连接将数据插入临时表。

新要求是在条件基于某些输入参数的情况下应用更多。

我的问题是:

我现在有两个选择:

  1. 在将数据插入临时表时,在每个select语句的where子句中应用条件。

  2. 插入数据时不应用任何条件,但最后从临时表中删除数据(不需要的数据)。

  3. 第二种方法看起来很简单,但我在考虑性能问题,因为最初会将不必要的数据插入其中,但每次都会应用多个过滤器。

    任何人都可以指导我应该使用哪种方法。

    基本上在过滤,插入,删除之间需要更多时间。

    所有表格中都有数千行。

2 个答案:

答案 0 :(得分:1)

如果没有确切的细节,很难回答,但一般来说,第一种方法听起来更好。

第二种方法意味着您将进行两次I / O(可能,取决于具体条件) - 一次将数据复制到临时表中,再次删除它。如果您的数据集很大,这将是相当可观的。

答案 1 :(得分:0)

你的第一种方法更好。

如果选择花费时间,则应优化选择以使其使用索引。

其次,你有一个大表,然后你从中选择了一些记录,并没有解决你的问题。