Я работаю над приложением C#, которое загружает данные из базы данных MS SQL 2008 или 2008 R2. Таблица выглядит примерно так:SQL - Лучше два запроса вместо одного большого
ID | binary_data | Timestamp
Мне нужно получить только последнюю запись и только двоичные данные. Записи в этой таблице добавляются нерегулярно из другой программы, поэтому я не знаю, есть ли новая запись. Какая версия лучше (производительность и т. Д.) И почему?
//Always a query, which might not be needed
public void ProcessData()
{
byte[] data = "query code get latest binary data from db"
}
против
//Always a smaller check-query, and sometimes two queries
public void ProcessData()
{
DateTime timestapm = "query code get latest timestamp from db"
if(timestamp > old_timestamp)
data = "query code get latest binary data from db"
}
Размер binary_data поле будет около 30Kb. Функция «ProcessData» будет вызываться несколько раз в минуту, но иногда ее можно вызывать каждые 1-2 секунды. Это лишь небольшая часть более крупной программы с большим количеством потоков/доступа к базе данных, поэтому я хочу «самое легкое» решение. Благодарю.
Попробуйте проверить его своими данными и использовать случай ...? –
зависит от того, насколько часто это нерегулярное обновление и насколько большие двоичные данные, но я бы сказал, если он не близок так часто, как вы проверяете, что вам лучше идти с 2-мя запросами. – BlackICE
IMO, это будет зависеть от количества новых записей двоичных данных. но почему вы не можете всегда отвечать timestamp, Data = NULL, если нет ничего нового? –