我必须使用银行对帐单,这意味着我必须使用大字符串并将其剪切为小部件,以便能够订购它所属的每个行的每一行。
到现在为止还挺好。问题是PATINDEX
,CHARINDEX
和substring
需要花费大量时间来处理大数据"。
例如,我在银行对帐单中有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'这需要很多时间。 这意味着所有案例都是每次评估,无论它们是什么类型,然后将决定哪种情况是正确的。或者我在这里错过了什么?