Эффективность чтения / записи SQL - PullRequest
0 голосов
/ 09 августа 2011

Есть ли разница в выполнении операций чтения и записи в SQL?Используя Linq to SQL в приложении ASP.NET MVC, я часто обновляю много значений в одной из моих таблиц в отдельных сообщениях (в ходе этого процесса многие сообщения такого типа быстро приходят от пользователя, хотя пользователь не может отправитьновые данные до завершения предыдущего обновления).Моя текущая реализация состоит в том, чтобы перебрать входные данные (список текущих значений для каждой строки) и записать их в поле (nullable int).Интересно, будет ли какая-либо разница в производительности, если вместо этого я прочту текущее значение в БД и только напишу, если оно изменилось.Большинство этих операций изменяют значения примерно от 1/4 до 2/3 строк, некоторые изменяют меньше, а немногие изменяют более 2/3 строк.

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

1 Ответ

2 голосов
/ 09 августа 2011

Всегда быстрее читать.

Запись - это всегда чтение , за которым следует запись .

SQL должен знать, в какую строку записывать, что включает чтение индекса или самой таблицы в операции поиска или сканирования, а затем запись в соответствующую строку.

Запись также должна обновлять любые применимые индексы. В зависимости от обстоятельств, индекс может обновляться, даже если данные не меняются.

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

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