Все зависит от вашего оборудования, но, скорее всего, ваша сеть является узким местом.
Помимо ограничения вашего запроса только чтением столбцов, которые вы на самом деле используете, выполнение выбора выполняется настолько быстро, насколько это возможно.Кэширование происходит здесь, когда вы выполняете его дважды подряд, второй раз будет намного быстрее, потому что данные кэшируются в памяти.выполните dbcc dropcleanbuffers
, чтобы проверить эффект кэширования.
Если вы хотите сделать это как можно быстрее, попробуйте реализовать код, выполняющий обработку в T-SQL, чтобы он мог работать непосредственно с данными.прямо на сервере.
Еще один хороший совет для настройки скорости - это иметь таблицу, которая читается на одном диске (посмотрите на файловые группы), и таблицу, на которую записывается на другом диске.Таким образом, один диск может выполнять непрерывное чтение, а другой - непрерывную запись.Если обе операции выполняются на одном и том же диске, головки диска продолжают двигаться вперед и назад, что серьезно снижает производительность.
Если логика, которую вы пишете, не может быть реализована в T-SQL, вы также можете взглянуть на SQL CLR.
Еще один совет: когда вы выбираете * из таблицы, по возможности используйте средство чтения данных.Таким образом, вы сначала не материализуете все это в памяти.
ГДж