Это может быть растяжка, но вы можете использовать «хэш-код» при сохранении данных в базе данных, а затем запросить значение хэш-кода в более позднюю дату / время.
Это предполагает, что у вас есть класс, который представляет вашу задачу, и что вы переопределили метод GetHashCode указанного класса.
Теперь, когда вы отправляете запрос к базе данных, чтобы увидеть, находится ли задача в запланированной очереди, вы просто запрашиваете хеш-код, таким образом избегая необходимости делать какие-либо xml-разыскивания во время запроса.
var t1 = new Task {Operation = "Run", Arguments = "someXElement.value"};
var t2 = new Task {Operation = "Run", Arguments = "someXElement.value"};
в приведенном выше коде t1 == t2, потому что вы переопределяете GetHashCode и вычисляете хеш для Operation + Arguments.Value. если вы храните хеш-код в БД, то вы можете легко определить, есть ли у вас объект в БД, равный хеш-коду, который вы проверяете.
Это может быть похоже на то, о чем говорил marc_s.