2010-05-04 52 views
0

我正在創建應用程序,其中用戶可以保存選項SQL Server的困境,性能

女巫一個更好?

  1. 保存到用戶表的varchar feeld smthing像( '1,23,4354,34,3') 查詢這是SELECT * FROM數據,其中CHARINDEX( 'L',供應商,0)> 0

  2. 創建其他的表,其中用戶選項,只是添加行 SELECT * FROM數據,其中供應商(從用戶數據選擇供應商其中userid = 100)

感謝您的幫助

回答

2

如果有可能,儘量避免將東西放入以逗號分隔的字符串中,然後強制SQL Server必須再次解析所有這些條目。

所以在你的情況下,我一定會選擇兩個 - 使用一個單獨的表,並讓你的用戶選項作爲單獨的行保存到該表中。這是更簡潔和更像SQL Server的解決方案,如果您正確處理它,它也會表現得更好(因爲從表中檢索數據,SQL Server的核心工作和能力 - 解析字符串不會)。