2013-11-20 3 views
0

У меня есть одна таблица и для любой вставки или обновления. Я использую оператор слияния , поэтому у меня есть MVC4 webapi, размещенный как служба, которая принимает вызовы AJAX. при получении вызова ajax, я использую структуру сущности для вызова хранимой процедуры в хранимой процедуре, я использую Merge, чтобы решить, существует ли строка, а затем обновить else insert Я использую слияние на одной таблице. все нормально на dev однако при запуске теста нагрузки на выдержку через 5 часов мы видим высокий уровень производительности для w3wp на веб-сервере. , и примерно через 7 часов мы видим около 1,9 миллиона строк в DB , мы усекали таблицу и снова начали тестирование в течение 1 часа, а процессор пошел нормально примерно на 5-7% Так может быть, если количество строк растет за пределами определенного предела приложение может вызвать высокий процессор. На этом этапе мы заметим только то, что когда число строк в БД растет, процессор начинает развиваться. Это всего лишь анализ. Мы этого не доказали. В таблице есть первичный ключ, состоящий из двух полей: : sessionid (varchar32), где хранится сеанс asp.net session и столбец имен (varchar (128) это поле 2 составляет первичный ключ и является кластеризованным индексом каждый экземпляр браузера отправляет asp.net sessionid и имя для каждого запроса, и на основании этого запись вставлена ​​или обновлена. Я думаю, что если хранимая процедура может вызвать высокий процессор на веб-сервере. SQL существует в другом блоке Любое предложение было бы полезноasp.net high cpu w3wp.exe

+0

Пожалуйста, очистите вопрос, разделите его на несколько разделов, если необходимо, и отформатируйте код (или даже выражения кода). –

ответ

0

Мое предположение, что вы должны перечислять все элементы таблицы в запросе linq где-то в приложении. Младшие разработчики не знают разницы betwe ru IQueryable и список.

Смежные вопросы