Can you post the code, or a snippet of the code, you are using to do the inserts?
If you aren't using Transactions, then this might explain why you are getting some slow down. If you can hold off performing Commits, then you can do a bunch of work and then Commit periodically. Below is a quick and dirty code snippet showing what I mean.
Code:
ITransaction txn = session.BeginTransaction()
int commitCnt = 0;
while (someCondition)
{
// do a bunch of work
// if needed commit periodically
if (commitCnt++ > 100) // whatever # works for you
{
txn.Commit();
txn = session.BeginTransaction();
commitCnt = 0;
}
}
txn.Commit();