带有很多OR语句和非常特定的帐户查找的SQL Server视图是否存在问题?

时间:2018-10-25 18:58:45

标签: sql sql-server tsql

我一直在另一位开发人员添加的SQL Server中处理视图,该视图具有许多带有特定帐户的OR语句-我感觉

  1. 这是不好的做法,哪个更好?加入另一种观点?
  2. 需要更多测试才能确保获得结果
  3. 好像现在的View可能会慢一些?这样做的表现如何?
  4. 对通用视图的赞叹不已,在每次添加帐户时都保持这种观点并使之滚动到生产环境(似乎有些保留表是理想的选择)

这是WHERE子句,其中包含所有这些新的OR语句:

WHERE   
    Source = 'DST' 
    AND bs.Name <> 'Closed'
    AND dst.BreakId IS NOT NULL
    AND ((dst.Account = 79350523 AND dst.ReconRecord IS NULL) --for DST suspense
         OR (dst.Account IN (98620036,98620664)) --for MFR suspense since we will need to include divnet (reconrecord is not null) in calculation
         OR (dst.Account IN (3157-6218, 7848-4182, 7935-0411, 7935-8987, 8460-8721)) -- For PPS Suspense
         OR (dst.Account IN (79340000, 79350304, 79350410, 79350700, 79358505, 79351733, 79352084))) -- For SPS Suspense

一个更好的方法示例是如何使用另一个View进行联接,或者将某些表联接到“ PPS”,“ SPS”等的表。

谢谢

1 个答案:

答案 0 :(得分:1)

为什么不为每种目的在帐户表中添加属性(MFR,PPS,SPS)?因此,您不必每次都更新视图。

并更新where子句,如:

client