0

我必须使用银行对账单,这意味着我必须使用大字符串并将其切割成小部分,以便能够订购它所属的账单的每一行。到目前为止,一切都很好。问题是PATINDEXCHARINDEX并且substring需要大量时间处理“大数据”。例如,我在银行对账单中有 100 行(字符串),我必须能够将每一行排序到正确的账单。在这 100 行中,有 90% 的非常简单的案例并不真正花费时间,因为它是一个简单的子字符串工作。但是对于剩下的 10%,有很多工作需要时间。我的问题是,即使我选择所有 SQL 代码都花费相同时间的情况,以防我有 100% 的行非常复杂,甚至只有 5%。这意味着对于每一行,将评估整个代码,然后做出正确的决定,这正是我的问题。

我怎样才能避免这种情况?

Select case 
when @var = 'bla' then do-something that takes 10 min to be evaluated 
when @var = 'john' then do-something that takes 5 min to be evaluated
when @var = 'Sarah' then do-something that takes very short time
else do-somethig that takes 10 min to be evaulated.

现在,当我的数据是 4000 行时,其中大部分都是“莎拉”,这与我的数据只有“bla”一样需要很多时间。这意味着无论哪种情况,每次都会评估所有案例,然后决定哪个案例是正确的。还是我在这里错过了什么?

4

0 回答 0