我有做类似的查询:
SELECT FieldX, FieldY FROM A
WHERE FieldW IN (108, 109, 113, 138, 146, 160,
307, 314, 370, 371, 441, 454 ,457, 458, 479, 480,
485, 488, 490, 492, 519, 523, 525, 534, 539, 543,
546, 547, 550, 564, 573, 629, 642, 643, 649, 650,
651, 694, 698, 699, 761, 762, 768, 772, 773, 774,
775, 778, 784, 843, 844, 848, 851, 852, 853, 854,
855, 856, 857, 858, 859, 860, 861, 862, 863, 864,
865, 868, 869, 871, 872, 873, 891)
具有很多选项的IN子句是否对查询性能不利?我的应用程序遇到很多超时,我相信这可能是此类问题的根源。是否可以使用任何良好的SQL提示优化查询而不删除数字?
编辑:
@KM这些是不同表中的键。这是一个论坛应用程序,简要说明:c#从数据库获取所有论坛并将其存储在应用程序缓存中。在C#调用获取这些论坛和该用户线程的过程之前,c#会考虑权限和一些业务逻辑,执行一些逻辑过滤“所有论坛”集合的逻辑。超时发生在数据库而不是应用程序本身。对查询执行所有这些逻辑将需要大量内部联接,而且我不确定100%是否可以在过程内完成所有这些操作。
我正在使用SQL Server 2000
茅侃侃
相关分类