如何避免抛出(选择案例时) - 需要花费大量时间的案例

时间:2017-09-10 13:06:28

标签: sql-server substring case-when charindex patindex

我必须使用银行对帐单,这意味着我必须使用大字符串并将其剪切为小部件,以便能够订购它所属的每个行的每一行。 到现在为止还挺好。问题是PATINDEXCHARINDEXsubstring需要花费大量时间来处理大数据"。 例如,我在银行对帐单中有100行(字符串),我必须能够将每一行订购到正确的帐单。 从100行开始,有90%非常简单的案例并不真正占用时间,因为它是一个简单的子串工作。但对于10%的剩余部分,有很多工作需要真正的时间。 我的问题是,即使我选择了SQL-Code所占用的所有内容总是同一时间的情况,以防我有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行时,Sarah'在大多数情况下,我需要花费相同的时间,就好像我的数据只是' bla'这需要很多时间。 这意味着所有案例都是每次评估,无论它们是什么类型,然后将决定哪种情况是正确的。或者我在这里错过了什么?

0 个答案:

没有答案