|
NHibernate : пакетная вставка в несколько таблиц не работает
|
|||
---|---|---|---|
#18+
Добрый день, есть сущность, замапленная в три таблицы: предок, его потомок и потомок потомка. Batch update этой сущности работает. Но batch insert / delete не работает. Мы применили NH профайлер, он ругается на слишком большое количество индивидуальных запросов. ID заполняется, как и требуется для bulk insert, еще перед Commit() через SaveOrUpdate. Во время коммита NH генерирует кучу одиночных Insert / Delete. Bulk insert у нас для сущностей, замапленных в одиночную таблицу, работает ОК. Вот маппинг: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
его потомок: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
потомок потомка: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Поддерживает ли NHibernate bulk insert / delete для сущностей, замапленных в 2-3 таблицы? Вот такие запросы идут к БД (взято из профайлера): Код: sql 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.
И так последовательно вставка табл.1 табл.2 табл.3 (второй экземпляр той же сущности) табл.1 табл.2 табл.3 ... И delete примерно так же. Может, bulk получился бы, если заставить NH вставлять в порядке: т1.т.1т.1 т.2т.2т.2 т.3.т.3т.3, но как это сделать? Или просто NH профайлер тупит? Но для других сущностей (которые в 1 таблице) он показывает все одной строчкой. Кстати, встроенный профайлер из SQL Server 2008 всегда показывает bulk запросы группой индивидуальных строчек. Ну это он такой глупый. Как быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 11:18 |
|
NHibernate : пакетная вставка в несколько таблиц не работает
|
|||
---|---|---|---|
#18+
NHibernate_User_, Какая версия NHibernate? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 11:24 |
|
NHibernate : пакетная вставка в несколько таблиц не работает
|
|||
---|---|---|---|
#18+
3.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 11:41 |
|
NHibernate : пакетная вставка в несколько таблиц не работает
|
|||
---|---|---|---|
#18+
NHibernate_User_, Не берусь утверждать, но видимо текущая версия пакетного обработчика по каким-то причинам не может сделать такой пакет, несмотря на то, что именно в версии 3.2 он был существенно переработан. Попробуйте на 3.3CR1, вдруг ситуация изменилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 22:59 |
|
NHibernate : пакетная вставка в несколько таблиц не работает
|
|||
---|---|---|---|
#18+
Спасибо, я ошибочно написал, что 3.2, когда у нас 3.1 Мы можем потестировать этот момент. А на 3.2 мы не можем перейти из-за As и Is: При попытке перейти на NHibernate 3.2 не работает as в entity http://www.sql.ru/forum/actualthread.aspx?tid=905560&hl=linfu ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2012, 12:51 |
|
|
start [/forum/topic.php?fid=17&fpage=35&tid=1350387]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 348ms |
total: | 471ms |
0 / 0 |