Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Добрый день,возникло 2 вопроса, что не так делаю? 1) Работаю с базой MS SQL 2008. Для запросов типа select,insert... и малых конструкций использовал sqlcommand и ExecuteNonQuery(); Возникла проблема: в коде такая конструкция: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. при выполнении возникает ошибка , (на этой строке 3*), существует назначенный этой команде открытый датаридер, который нужно предварительно закрыть. Вроде все закрываю, ни черта не получается. 2) на том же сервере есть хранимая процедура, выполняется долговато,связано с расчетом/разбором больших таблиц, минимум это секунд 40-50. код такой: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. возникает ошибка:"Истекло время ожидания. Время ожидания истекло до завершения операции или сервер не отвечает." Как избавиться от такого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 11:04 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
сразу допишу, что селекты из первого вопроса изменил, не обращайте внимания на поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 11:06 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
1. Либо закройте sqlreader1 до того как открыть второй (sqlreader2 = current_acc.ExecuteReader()), либо научитесь пользоваться поиском: Два DataReader-а - как открыть оба ; 2. Почитайте MSDN: SqlCommand.CommandTimeout . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 12:06 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
skyANA1. Либо закройте sqlreader1 до того как открыть второй (sqlreader2 = current_acc.ExecuteReader()), либо научитесь пользоваться поиском: Два DataReader-а - как открыть оба ; 2. Почитайте MSDN: SqlCommand.CommandTimeout . спасибо, по 1 - попробал по 2 пока нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2013, 16:40 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Ребят, а можете подсказать,как оптимизировать? как писал выше,есть дата ридеры,на самом деле их 5 датаридеров, первый основной, остальные четыре с ним связаны, 4 нужны для определенных таблиц,данных,расчетов. т.е. 1 ридер - данные по клиенту (ид,инн,бизнес итд) 2 ридер - расчеты по текущим счетам 3.ридер - расчеты по депозитам итд все это выгружается в excel работает чрезвычайно долго, понятное дело,то что проход сначала по клиентам, около 50000, внутри по остальным. итогвый файл получается примерно таким ид - номер счета - наименование - текущие счета(остаток) - текущие счета(доход) ...расход итд ... .также по депозитам итд как лучше сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2013, 16:49 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
я б подумал в сторону сделать хранимку, получающую единый результат и отдающую в виде xml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2013, 16:52 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Паганель, Спасибо за ответ,думал я сделать через хранимую, а другой способ есть,более производительный?чем циклы в цикле или хранимая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2013, 17:38 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
если хранимку правильно написать, она будет производительной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2013, 17:42 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
denis_stellРебят, а можете подсказать,как оптимизировать? как писал выше,есть дата ридеры,на самом деле их 5 датаридеров, первый основной, остальные четыре с ним связаны, 4 нужны для определенных таблиц,данных,расчетов. т.е. 1 ридер - данные по клиенту (ид,инн,бизнес итд) 2 ридер - расчеты по текущим счетам 3.ридер - расчеты по депозитам итд все это выгружается в excel работает чрезвычайно долго, понятное дело,то что проход сначала по клиентам, около 50000, внутри по остальным. итогвый файл получается примерно таким ид - номер счета - наименование - текущие счета(остаток) - текущие счета(доход) ...расход итд ... .также по депозитам итд как лучше сделать?1. Если итоговые данные - это одна плоская таблица Excel, то можно ограничится одним запросом. Это будет либо SELECT с нужными JOIN, либо представление (View), либо хранимая процедура; 2. Судя по Вашему коду, Вы вставляете данные в Excel по ячейкам, это будет очень долго (и скорее всего это и есть узкое место). Нужно вставлять либо целую строку, либо целую таблицу, то есть использовать Excel Range. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2013, 18:15 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
о, да, кстати... а может вообще какой-то Report Engine автору заюзать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2013, 18:18 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
skyANAdenis_stellРебят, а можете подсказать,как оптимизировать? как писал выше,есть дата ридеры,на самом деле их 5 датаридеров, первый основной, остальные четыре с ним связаны, 4 нужны для определенных таблиц,данных,расчетов. т.е. 1 ридер - данные по клиенту (ид,инн,бизнес итд) 2 ридер - расчеты по текущим счетам 3.ридер - расчеты по депозитам итд все это выгружается в excel работает чрезвычайно долго, понятное дело,то что проход сначала по клиентам, около 50000, внутри по остальным. итогвый файл получается примерно таким ид - номер счета - наименование - текущие счета(остаток) - текущие счета(доход) ...расход итд ... .также по депозитам итд как лучше сделать?1. Если итоговые данные - это одна плоская таблица Excel, то можно ограничится одним запросом. Это будет либо SELECT с нужными JOIN, либо представление (View), либо хранимая процедура; 2. Судя по Вашему коду, Вы вставляете данные в Excel по ячейкам, это будет очень долго (и скорее всего это и есть узкое место). Нужно вставлять либо целую строку, либо целую таблицу, то есть использовать Excel Range. А что вы подразумеваете под "это одна плоская таблица Excel"? т.е. итоговая таблица это сбор всех данных, расходов/доходов/комиссий, фиктивных/фактических ставок по различным бизнесам итд, это все по счетам в разрезе клиентов+итоговые данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2013, 20:38 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
skyANA, по 2. пункту Вы правы, вставляю данные по ячейкам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2013, 20:43 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
denis_stellskyANAпропущено... 1. Если итоговые данные - это одна плоская таблица Excel, то можно ограничится одним запросом. Это будет либо SELECT с нужными JOIN, либо представление (View), либо хранимая процедура; 2. Судя по Вашему коду, Вы вставляете данные в Excel по ячейкам, это будет очень долго (и скорее всего это и есть узкое место). Нужно вставлять либо целую строку, либо целую таблицу, то есть использовать Excel Range. А что вы подразумеваете под "это одна плоская таблица Excel"?Одна таблица, без группировок, на одном листе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 10:24 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
denis_stellskyANA, по 2. пункту Вы правы, вставляю данные по ячейкамА надо данные кучей вставлять (Range) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 10:25 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
skyANA, Не совсем так, группировка есть, одна по счетам в разрезе клиента. Никогда не работал с range, поэтому не совсем понимаю, вставляю данные через SetValue. Если у Вас есть, можете примерчиком в меня кинуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 11:05 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
denis_stell, выложите пример получившегося файла Excel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 11:38 |
|
||
|
метод sqldatareader и хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
skyANA, я извиняюсь,что сразу не ответил, был занят. прикладываю шаблон файла, который выгружается, нужно чтобы группировались данные в файле по клиенту, в принципе можно группировать по ид или по имени ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2013, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38378963&tid=1358148]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 264ms |
| total: | 421ms |

| 0 / 0 |
