трехзвенка - возникли нюансы с большим набором данных
От:
Аноним
Дата:
22.03.04 08:15
Оценка:
В своем приложении использую трехзвенку. В основном у меня шла выборка данных из БД(MS SQL) через хранимые процедуры, обработка их в бизнес-логике и передача дальше уровнем выше. Занесение данных в БД осуществлялось также хранимыми процедурами. Как правило, заносится одно-два-три значения. И для занесения достаточно было создать объект SqlCommand("моя хранимая процедура", mySqlConnection) + cоздавал где-то три SqlParameter и .. . . . . .
Но, резко изменились требования. Возникла необходимость занесения большого количества данных.
Решение возникло сразу — динамически создавать строку для объекта SqlCommand т. е. в цикле перебирая мой "массив" информации формировать :
foreach (DictionaryEntry myEntry in myHashtable)
{
myCommandText = myCommandText + "INSERT INTO my_Table (field1, field2) VALUES ("+myEntry.Key+", "+myEntry.Value+") ";
}
myCommand.CommandText = myCommandText;
.....и далее ......
Это у меня работает. Но, нарушается разделение бизнес-логики и данных. Есть ли способ, данную операцию "провернуть" через хранимые процедуры? То есть передать ей, грубо говоря, "массив" информации? Либо, может в ADO.NET есть какие-либо средства, которые могут помочь?
Re: трехзвенка - возникли нюансы с большим набором данных
Здравствуйте, Аноним, Вы писали:
А> Это у меня работает. Но, нарушается разделение бизнес-логики и данных. Есть ли способ, данную операцию "провернуть" через хранимые процедуры? То есть передать ей, грубо говоря, "массив" информации? Либо, может в ADO.NET есть какие-либо средства, которые могут помочь?
В хранимую процедуру передавать xml документ. см sp_xml_preparedocument
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: трехзвенка - возникли нюансы с большим набором данных
От:
Аноним
Дата:
22.03.04 12:45
Оценка:
Здравствуйте, Supervisor, Вы писали:
S>Здравствуйте, <Аноним>, Вы писали:
S>Попробуй так:
S>1. Создай временную таблицу S>2. Забей в нее данные через insert S>3. Затем вызови XP S>4. Обработай данные S>5. после выхода из ХП удали временную таблицу.
S>Так устроит?
Нет. Хотя и произойдет разделение, но скорость будет маловата
Re[2]: трехзвенка - возникли нюансы с большим набором данных
От:
Аноним
Дата:
22.03.04 12:48
Оценка:
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, Аноним, Вы писали:
А>> Это у меня работает. Но, нарушается разделение бизнес-логики и данных. Есть ли способ, данную операцию "провернуть" через хранимые процедуры? То есть передать ей, грубо говоря, "массив" информации? Либо, может в ADO.NET есть какие-либо средства, которые могут помочь?
TK>В хранимую процедуру передавать xml документ. см sp_xml_preparedocument
Вот это похоже то, что мне надо! Здесь вы уже дали ответ на эту тему
Re[2]: трехзвенка - возникли нюансы с большим набором данных
От:
Аноним
Дата:
22.03.04 13:16
Оценка:
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, Аноним, Вы писали:
А>> Это у меня работает. Но, нарушается разделение бизнес-логики и данных. Есть ли способ, данную операцию "провернуть" через хранимые процедуры? То есть передать ей, грубо говоря, "массив" информации? Либо, может в ADO.NET есть какие-либо средства, которые могут помочь?
TK>В хранимую процедуру передавать xml документ. см sp_xml_preparedocument
Сейчас по аське с другом большой спор зашел. Они как-раз таки от америкосов получили на доработку проект, в котором шла интенсивная работа через XML, по его дословному отзыву "потому что все что работает через XML — тормозит".
Так насколько "тормознутым" будет вариант, предложенный ТК?
Re[2]: трехзвенка - возникли нюансы с большим набором данных
Здравствуйте, Аноним, Вы писали:
TK>>В хранимую процедуру передавать xml документ. см sp_xml_preparedocument А> Сейчас по аське с другом большой спор зашел. Они как-раз таки от америкосов получили на доработку проект, в котором шла интенсивная работа через XML, по его дословному отзыву "потому что все что работает через XML — тормозит". А> Так насколько "тормознутым" будет вариант, предложенный ТК?
Нужно тестировать на реальных данных. В MSDN есть статья которую можно взять как некоторую основу для размышлений Performance Comparison: Data Access Techniques
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: трехзвенка - возникли нюансы с большим набором данных
От:
Аноним
Дата:
22.03.04 14:06
Оценка:
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, Аноним, Вы писали:
TK>>>В хранимую процедуру передавать xml документ. см sp_xml_preparedocument А>> Сейчас по аське с другом большой спор зашел. Они как-раз таки от америкосов получили на доработку проект, в котором шла интенсивная работа через XML, по его дословному отзыву "потому что все что работает через XML — тормозит". А>> Так насколько "тормознутым" будет вариант, предложенный ТК?
TK>Нужно тестировать на реальных данных. В MSDN есть статья которую можно взять как некоторую основу для размышлений Performance Comparison: Data Access Techniques
Просмотрел статейку. Не все так печально ,как утверждал друг. В его громадном проекте ХМL — это действительно "тормоз". В моем же случае, накладные расходы лихвой компенсируються большей гибкостью программы.