2011-12-19 4 views
2

У меня есть проект, над которым я работаю, для этого требуется, чтобы я удалял записи из базы данных, если им было 3 года.Что происходит быстрее: Текущая дата из VB.NET или DB2 SQL

У меня есть что-то вроде этого в SQL DB2, чтобы получить дату:

SELECT * FROM tableA 
WHERE ADD_DATE < CHAR(CURRENT DATE-3 YEARS) 

ADD_DATE хранится в виде символов в моей системе, поэтому я уверен, преобразование

Я знаю, что это также возможно получить дату и отформатировать ее на VB.net, который является языком, который я использую для вызова операторов SQL.

Мой вопрос заключается в том, было бы быстрее/лучше получить дату и выполнить преобразование внутри SELECT в SQL или было бы лучше получить текущую дату и преобразовать ее в VB.net, а затем использовать эту дату в оператор SQL. Я думаю, что VB.net будет лучше, потому что есть тысячи записей, которые нужно сравнить. Я должен иметь возможность настроить его в VB, чтобы он только извлекал дату и конвертировал ее один раз, но я не уверен, какая производительность влияет на каждый из этих выражений.

Заранее спасибо.

ответ

2

Если все, что вы делаете с вызовом в базу данных, будет получать дату, тогда было бы быстрее получить ее на стороне клиента и избежать обратного перехода к базе данных.

Если вы делаете это на стороне сервера, и вы сравниваете свою дату в одной операции на основе набора, тогда разница во времени для этого незначительна. Если вы сделаете чек-код на основе цикла (курсор или что-то еще), тогда вы будете тратить время.

Не похоже, что это применимо к вам, но для дальнейшего использования обязательно учитывайте возможность того, что клиент и сервер базы данных находятся в разных часовых поясах. Это может быть безопаснее сделать это так или иначе в зависимости от часового пояса, для которого созданы ваши данные.

+0

Чтобы добавить к вашему ответу: что произойдет, если время клиента неверно? Если это будет проблемой (и я не знаю, когда этого не будет), я бы использовал время сервера. – UnhandledExcepSean

0

Выполнение «сейчас» в VB.Net, безусловно, будет быстрее, чем попадание в базу данных.

Смежные вопросы