A long time ago I tried stateless session to do what your doing and ended
up punting and replacing it with bulk copy.

Oracle, at least the full odp.net, had OracleBulkCopy which I ended up
using instead of NHibernate.  I don't know if the bulk copy classes exist
in the managed provider.

The bulk copy classes are significantly faster than trying to wrangle this
through NHibernate

On Jul 7, 2017 1:09 PM, "Felipe Oriani" <[email protected]> wrote:

> Hi Gunnar,
>
> I am using Oracle but it also can run over MsSql.
>
> I am sorry, I express myself wrong. I execute a DataReader on another
> database which give a result set of 200k records. I loop on this and
> compact 100 records on a json (Clob/text field) and persist one line on the
> session. For 200k, it will be 2500 records on insert the stateless session.
> To improve the performance, the ID of this entity I am going to persist it
> mapped as GUID.
>
> The question is about the *transaction*, on my architecture, the
> repository depends of session factory, which contains a session on the bind
> (take by GetCurrentSession). I would like to know, if on the method where I
> need to process this massive data, if I initilize another session
> (stateless) by passing the Connection of the session (Session.Connection)
> on the factory.OpenStatelessSession(), will I have the statelesse session
> on the same transaction?
>
> Thank you.
>
>
>
>
>
>
>
>
>
>
> On Fri, Jul 7, 2017 at 12:24 PM, Gunnar Liljas <[email protected]>
> wrote:
>
>> 200000 is a lot, even for a stateless session. Are you using MSSQL?
>>
>> /G
>>
>> 2017-07-07 16:22 GMT+02:00 Felipe Oriani <[email protected]>:
>>
>>> Hello guys.
>>>
>>> I am developing a process where we need to insert more than 200.000
>>> records on the database and it can increse. To have a performance, we need
>>> to implement a stateless session to insert all the data.
>>>
>>> The problem is that on our Repositories implementations we depend on the
>>> SessionFactory which contains a session on bind and we take it from
>>> SessionFactory.GetCurrentSession() and depending on the context, it
>>> already has an active transaction.
>>>
>>> My question is: Is there any way to implement bulk insert operations on
>>> the normal Session instead of Stateless session?
>>>
>>> If no, I would like to know, if is there any way to open a Stateless
>>> session to perform the bulk insert operation for the same transaction? Or
>>> should I need to open a stateless session from my sessionFactory?
>>>
>>> I've seen that stateless session can take a DbConnection, so I could try
>>> this:
>>>
>>> var statelessSession = factory.OpenStatelessSession(session.Connection);
>>>
>>> But I am not sure how it is going to work. If it is fine to and I will
>>> get the same transaction.
>>>
>>> Thank you.
>>>
>>>
>>>
>>>
>>> --
>>> ______________________________________
>>> Felipe B Oriani
>>> [email protected]
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "nhusers" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at https://groups.google.com/group/nhusers.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at https://groups.google.com/group/nhusers.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> ______________________________________
> Felipe B Oriani
> [email protected]
>
> --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/nhusers.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.

Reply via email to