Тормознутость ADO.NET?
От: Аноним  
Дата: 08.11.10 14:07
Оценка:
Хотел потестировать под нагрузкой чтение из базы, т.е. посмотреть, как просядет производительность, когда в таблички активно пишут.
сделал примитивное приложение — цикл с инсертами в таблички, запустил, и только было собрался поделать селекты как решил проверить загрузку скуля.

Загрузка скуля оказалась минимальной, я посмотрел загрузку моего приложения — вообще понулям. посмотрел профайлером — вставки летят с нечеловеческой быстротой! возник вопрос: в производительность чего я упираюсь? памяти дофига, проц практически спит, на диск происходит запись 1Мб/сек, т.е. явно не предел!

Спасибо за любые идеи!

зы MSSQLServer2008
Re: Тормознутость ADO.NET?
От: Аноним  
Дата: 08.11.10 14:33
Оценка:
А>Загрузка скуля оказалась минимальной, я посмотрел загрузку моего приложения — вообще понулям. посмотрел профайлером — вставки летят с нечеловеческой быстротой! возник вопрос: в производительность чего я упираюсь? памяти дофига, проц практически спит, на диск происходит запись 1Мб/сек, т.е. явно не предел!

Вы уперлись в производительность диска. Для записей по 4кб на диск(запись лог файла от инсерта) без кэша 1mb/сек _может быть_ пределом. Для доказательства попробуйте увеличить размер транзакции (несколько сот инсертов в транзакции).
Re[2]: Тормознутость ADO.NET?
От: Аноним  
Дата: 09.11.10 06:00
Оценка: 9 (1)
Здравствуйте, Аноним, Вы писали:

А>Вы уперлись в производительность диска. Для записей по 4кб на диск(запись лог файла от инсерта) без кэша 1mb/сек _может быть_ пределом. Для доказательства попробуйте увеличить размер транзакции (несколько сот инсертов в транзакции).


Ситуация кардинальным образом как только начал пользоваться методом Prepare() — без пересоздания команды параметры перезаполняются и делается очередной Execute()
Re: Тормознутость ADO.NET?
От: _d_m_  
Дата: 09.11.10 08:32
Оценка:
Здравствуйте, Аноним, Вы писали:

http://www.sql.ru/articles/mssql/03121001PERF_COUNTERs.shtml
Re[3]: Тормознутость ADO.NET?
От: Аноним  
Дата: 09.11.10 10:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Вы уперлись в производительность диска. Для записей по 4кб на диск(запись лог файла от инсерта) без кэша 1mb/сек _может быть_ пределом. Для доказательства попробуйте увеличить размер транзакции (несколько сот инсертов в транзакции).


А>Ситуация кардинальным образом как только начал пользоваться методом Prepare() — без пересоздания команды параметры перезаполняются и делается очередной Execute()


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

И вообще в mssql есть такая байда как автопараметризация. т.е. INSERT VALUES будет всегда работать так, как если бы был запущен Prepare. Там есть ряд ограничений на это, но простой INSERT должен параметризоваться!

Appendix A: When does SQL Server 2005 not auto-parameterize queries?
http://technet.microsoft.com/ru-ru/library/cc966425(en-us).aspx

Хотя и бог с ним со всем этим конечно, если вас всё устраивает теперь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.