Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
Пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Это работает конечно, но мне не нравятся эти дёрганья oleDbConnection1.Open(); oleDbConnection1.Close(); Нельзя ли как-нить соединение открыть, все операции провести и только потом закрыть? Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 16:33 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
А откуда данные берешь? Может DTS? Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 16:47 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
Может DTS? Кто такой? А откуда данные берешь? Разве из кода не видно? Сам сочиняю в цикле :) Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 17:00 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
DTS - Data Transformation Services. я думал тебе откуда перетащить нужно. А такое сочинение лучше прямо в хранимке писать. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 17:20 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
DTS - Data Transformation Services. А с чем это едят? Мне бы ссылочку какую, где про это чудо почитать можно... А такое сочинение лучше прямо в хранимке писать. А средствАми C# мона ?! Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 17:26 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
Ниччего не понимаю, теперь работает так и причём в десятки раз быстрее: т.е. всего 10 секунд вместо 2.5 минут (!). Просто вынес из цикла открытие и закрытие соединения. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 17:36 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
А что непонятного то!? Соединение не "дергается" каждый раз! Вот и быстрее. В любом случае вынос инвариантных операций из цикла ускоряет его выполнение за счет уменьшения операций внутри каждой итерации. А уж тем более открытие/закрытие коннекта! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 17:46 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
А средствАми C# мона ?! Обьясни мне одну вещь: Зачем? Если тебе нужно заполнить таблицу подобными данными, то сам сервер БД это по определению сделает быстрее. На то он и сервер. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 17:50 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
А что непонятного то!? Непонятно чего енто раньше не работало, прежде чем сюда писать я именно этот вариант пробовал.... ну да ладно, мож где не туда нажал...уже не важно. Обьясни мне одну вещь: Зачем? Есть ВэбСервис который работает с БД и он написан на Сишарп. Спрошу подругому: Как мне вызать эту ХП из ВэбСервиса? Код на Сишарп можете дать? Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 18:08 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
сервис или нет, это не важно. Вот пример http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconusingstoredprocedureswithcommand.asp Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 18:13 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
Спасибо. Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 18:16 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
2 M234 Если бы сразу же написал: "Вот пример, используется база данных Access". Половина бы постов здесь не было, ведь это sql.ru здесь народ сразу же думает что стоит MS SQL даже не обращая внимания на OleDb провайдер (хотя и им тоже можно к MS SQL коннектиться но все таки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 07:23 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
2 Sa Ок. Замечания учту. Я думаю, что в моём случае на сервере будет стоять MS SQL, а на клиентах Ацесс, так что все ответы мне полезны в той или иной степени. Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 10:14 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
авторНиччего не понимаю, теперь работает так и причём в десятки раз быстрее: т.е. всего 10 секунд вместо 2.5 минут (!). А если prepare добавить? Я думаю секунды 2 будет. int Value2=0; int i; oleDbConnection1.Open(); oleDbDataAdapter1.InsertCommand.CommandText="INSERT INTO Table1(Field1, Field2) VALUES (?,?)"; oleDbDataAdapter1.InsertCommand.Parameters.Add("Par1", OledbType.VarChar); oleDbDataAdapter1.InsertCommand.Parameters.Add("Par2", OledbType.Int); oleDbDataAdapter1.InsertCommand.Prepare; for (i=0;i<2000;i++) { oleDbDataAdapter1.InsertCommand.Parameters[0].Value = "Value1"; oleDbDataAdapter1.InsertCommand.Parameters[1].Value = id; oleDbDataAdapter1.InsertCommand.ExecuteNonQuery(); id++; } oleDbConnection1.Close(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 09:28 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
А если prepare добавить? Я думаю секунды 2 будет. Точно! Проверил на 10000 записей разница между "с prepare" и "без оного" составила 21 секунду (26 и 47 секунд соответственно) Спасибо большое за оптимизацию процесса ! Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 11:06 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
авторЕсть ВэбСервис который работает с БД и он написан на Сишарп. авторТочно! Проверил на 10000 записей разница между "с prepare" и "без оного" составила 21 секунду (26 и 47 секунд соответственно) Надеюсь ты не собираешься вызывать ВэбСервис 2000 раз? Кстати, никто не делал/видел реализации коннекшион пул? Что бы на каждый вызов вебсервиса не открывать/закрывать коннект. Похоже у меня теряется на этом 500-600 млсек, а Субд сей финт не умеет. Я Использую System.Data.Odbc классы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 11:15 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
А если попробовать написать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. А потом из клиента вызывать их. Так можно наверно коннект держать открытым до момента его явного закрытия, хотя это теория, ещё не пробовал пока. Попробую - скажу результат. Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 12:15 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
>Кстати, никто не делал/видел реализации коннекшион пул? Вы наверное имеете ввиду настройку connection pool Посмотрите: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmdac/html/pooling2.asp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 13:33 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
автор>Кстати, никто не делал/видел реализации коннекшион пул? Вы наверное имеете ввиду настройку connection pool Ага. авторПосмотрите: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmdac/html/pooling2.asp Спасибо, посмотрю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 14:10 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
авторА если попробовать написать так: [WebMethod] public void DBCloseConn() { if (oleDbConnection1.State.ToString().ToUpper()=="OPEN") { oleDbConnection1.Close(); } } [WebMethod] public void DBOpenConn() { if (oleDbConnection1.State.ToString().ToUpper()=="CLOSED") { oleDbConnection1.Open(); } } А потом из клиента вызывать их. Так можно наверно коннект держать открытым до момента его явного закрытия, хотя это теория, ещё не пробовал пока. Попробую - скажу результат. Я конечно не очень копенгаген, но у меня есть ощущение oleDbConnection1 существует только внутри [WebMethod]. Т.е. если откроешь oleDbConnection1 из одного WebMethod, в другом WebMethod, его (oleDbConnection1) не будет. Можно конечно сохранить его в Session, но тогда и методы д.б. [WebMethod (Description="", EnableSession= true )] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 14:19 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
авторНадеюсь ты не собираешься вызывать ВэбСервис 2000 раз? В общем я хотел намекнуть, что вызов ВэбСервиса довольно дорогая операция, и имеет смысл создать ВэбСервиса, принимающий в качестве параметра XmlNode, или массив твоих объектов. И уже внутри ВэбСервиса выполнить инсерты в цикле сделав prepare. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 14:24 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
....и имеет смысл создать ВэбСервиса, принимающий в качестве параметра XmlNode, или массив твоих объектов. И уже внутри ВэбСервиса выполнить инсерты в цикле сделав prepare. Есссесно. Обижаете коллега.... Я конечно не очень копенгаген, но у меня есть ощущение oleDbConnection1 существует только внутри [WebMethod]. Т.е. если откроешь oleDbConnection1 из одного WebMethod, в другом WebMethod, его (oleDbConnection1) не будет. Угу. Так и есть, но мы его еще покрутим.... :)) Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 14:51 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
А с хранимкой таки быстрее будет :) Вставка 2К записей для сервера - полпинка. В данном варинте мы имеем 2000 обращений к серверу. Улавливаете разницу? :) Естественно если все таки будет сиквел. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 16:10 |
|
||
|
Как вставить в БД 2000 записей наилучшим образом?
|
|||
|---|---|---|---|
|
#18+
авторА с хранимкой таки быстрее будет :) Вставка 2К записей для сервера - полпинка. В данном варинте мы имеем 2000 обращений к серверу. Улавливаете разницу? :) Я не в курсе, а что можно в хранимку передать массив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 16:19 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32455546&tid=1439375]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
68ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 259ms |
| total: | 430ms |

| 0 / 0 |
