Hi Fran,

Thank you for the feedback. And yes, unfortunately there is no
OracleBulkCopy on the Managed Provider. Only in the unmanaged provider. We
use Oracle Managed Provider. I am trying to improve the performance using
ado.net and it looks like get some time improvements and use
Session.Transaciton.enlist(command) to make it part of my main transaction.
It works fine.

I wish to have OracleBulkCopy on it. Maybe, I will try it out.

Thank you.






On Fri, Jul 7, 2017 at 2:17 PM, Fran Knebels <[email protected]> wrote:

>  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(s
>>>> ession.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.
>



-- 
______________________________________
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.

Reply via email to