Что быстрее: текущая дата из VB.NET или DB2 SQL - PullRequest
2 голосов
/ 19 декабря 2011

У меня есть проект, над которым я работаю, и который требует от меня удаления записей из базы данных, если им не менее 3 лет.

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

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 ]

2 голосов
/ 19 декабря 2011

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

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

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

0 голосов
/ 19 декабря 2011

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

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