我有一个包含大量数据的表。此表的目的是用户事务。
我将从第三方将经常呼叫的网络服务插入此表。
第三方将提供参考代码(最可能是字符串)。
这里的要求是我需要检查是否已插入此参考代码。如果存在,只需返回详细信息,不执行任何其他操作。如果它没有按预期创建交易。这背后的原因是在收到请求后可能会丢失与服务的通信。
我对此有一些性能问题,因为搜索将在字符串值上完成,也在大型表上完成。大多数情况下,事务不会存在于数据库中,因为这只是一种预防措施。
我不是在这里要求代码,而是为了获得最佳的性能方法。
答案 0 :(得分:0)
如果您的主题表明您是否正在尝试评估EXISTS(来自Sometable的SELECT 1),那么性能不会太多。这是因为你不会只编写一堆1(意味着内部查询)来将结果计算为布尔值。
其他方面是在参考代码字段上提供的非聚集索引。如果参考代码的长度允许说它是一个固定长度的字符串(CHAR(50),那么B -tree也将是最佳的。
我不确定数据一致性要求,因此除非你有高度跨国的读写,否则普通的readcommitted将不会造成任何伤害。