Sql查询性能字符串包含vs唯一键?

时间:2015-10-03 14:24:46

标签: c# sql sql-server azure azure-sql-database

我的SQL Server数据库中有这个表,它有几百万行。它用网址存储图片。有不断添加的新图片,我不希望有重复的网址。所以每次从我的C#代码中我都会查询类似的内容;

!pictures.Any(n => n.url == url)

!pictures.Contains(n => n.url == url)

因此,它们都会增加数据库的DTU,特别是在CPU级别上。所以我也必须在Azure数据库服务中使用更高层。

我的问题是,如果我在表中的url列中创建一个唯一的列或复合主键,并且在C#中围绕try catch块插入db代码,那会更好吗?它会提高查询和数据库的性能吗?或者有更好的方法吗?

我的主要问题是:

var existingImage = _context.Pictures.FirstOrDefault(p => p.Body.Trim().ToLower() == pictureUrl.Trim().ToLower() && p.AppId == appId);

其中AppId是主键。

0 个答案:

没有答案