比较对象变量和查找更改的最佳方法

时间:2011-11-30 21:18:29

标签: vb.net variables object compare

我有一个函数,它将传递一个包含许多变量的对象。这些变量都存储在数据库中。稍后,一个新对象将被传递给我的函数,大多数时候它将是相同的。但有时一个或两个变量会有所不同,我将不得不根据这些变化采取各种行动。除了遍历每个变量并将其与该变量的每个存储版本进行比较之外,我该怎么做?我可以为一整个对象生成哈希值吗?由于对象在传递给我的时间最多,因此这将是确定没有任何变化的快速方法。

2 个答案:

答案 0 :(得分:0)

您写道,您将所有变量存储在数据库中,因此我认为您应该尽可能少地进行数据库调用。为此,您可以编写在将行插入包含值的表中时调用的存储过程。在此过程中,您可以计算哈希值并更新表中添加到存储哈希值的列。您可以在Oracle中使用sys.dbms_crypto.hash函数来计算哈希值。当您需要搜索对象(如果存在)时,再次调用存储过程,该存储过程输入当前对象值的文本值,使用相同的函数再次创建哈希值并调用select语句,如果行返回,则返回“ Y“否则为”N“。您可以将索引添加到“哈希值列”以使事情更快。

答案 1 :(得分:0)

您可能会消耗尽可能多的资源(如果不是更多),以确定是否有任何更改。除非您每小时收到数十万个请求,否则每次使用该记录更新数据库可能同样容易。