| 
     
      
      
      From: F.D.Castel (JIRA) <tr...@fi...> - 2013-01-20 21:24:29
       
   | 
New behavior for implicit transactions
--------------------------------------
                 Key: DNET-483
                 URL: http://tracker.firebirdsql.org/browse/DNET-483
             Project: .NET Data provider
          Issue Type: Improvement
          Components: ADO.NET Provider
    Affects Versions: 3.0.2.0
            Reporter: F.D.Castel
            Assignee: Jiri Cincura
            Priority: Minor
In the current implementation implicit transactions are being commited after each command execution (and restarted again on the next one). This is not the ideal since it causes a lot of overhead in Firebird.
Of course, with Firebird, the best practice IS to use explicit transactions. So, at first look, this is not a big problem. 
However, in db-agnostic scenarios like ORMs the code is often NOT aware of this and expect to use DbCommands without transactions. So, in this case, they are taking a lot of time and server resources. 
E.g.: It took me about 20 minutes to reverse engineer some moderately sized (400 tables) Firebird database into Entity Framework. At first I though it was EF fault, but after seeing the performance problems described in DNET-280 i did realize that was actually the provider fault.
Given all that, I propose to change the current behavior from "one commit after each execute" to "one commit after FbCommand disposal" when using implicit transactions. This could bring some breaks in compatibility, but it will bring the performance near to levels similar to the other providers.
-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
        
 | 
| 
     
      
      
      From: André K. <Kna...@be...> - 2013-01-23 13:17:20
       
   | 
> Given all that, I propose to change the current behavior from "one > commit after each execute" to "one commit after FbCommand disposal" > when using implicit transactions. This could bring some breaks in > compatibility, but it will bring the performance near to levels similar to the other providers. If my opinion also counts: hmmmh... no, better not :-) Too much existing code would break, especially taking into account that a lot of "disposal" of FbCommand only takes place on shutting down the application (static commands?). And I don't think that expected behaviour should be changed with a high risk of breaking indeed a lot of existing code "only" to make reverse engineering into EF faster. If Jiri finds a way to implement an optional switch or property of the FbCommand class to set behaviour this or that way, but without breaking existing code, okay. I still would not touch it myself unless I am absolutely certain that I could 100% guarantee the end-of-life/disposal of a command object. The risk of creating stuck transactions is too high for me. best regards, André  | 
| 
     
      
      
      From: Jiri C. <di...@ci...> - 2013-01-24 07:29:09
       
   | 
On Wed, Jan 23, 2013 at 2:18 PM, André Knappstein
<Kna...@be...> wrote:
> If my opinion also counts:
Maybe better to comment in tracker, because this email is from tracker. :)
-- 
Jiri {x2} Cincura (x2develop.com founder)
http://blog.cincura.net/ | http://www.ID3renamer.com
 | 
| 
     
      
      
      From: André K. <Kna...@be...> - 2013-01-24 16:33:41
       
   | 
> On Wed, Jan 23, 2013 at 2:18 PM, André Knappstein > <Kna...@be...> wrote: >> If my opinion also counts: > Maybe better to comment in tracker, because this email is from tracker. Yes-Sir! As soon as I find out where and how this works :-) mit freundlichen Grüßen, André Knappstein EDV und Controlling ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ beta Eigenheim- und Grundstücksverwertungsgesellschaft mbH Hafenweg 4 59192 Bergkamen-Rünthe Telefon: +49 2389 9240 140 Telefax: +49 2389 9240 150 e-mail: kna...@be... Amtsgericht Hamm Nr. B 420 Geschäftsführer: Achim Krähling, Dirk Salewski und Matthias Steinhaus USt-IDNr.: DE 125215402  | 
| 
     
      
      
      From: Jiri C. <di...@ci...> - 2013-01-25 07:55:16
       
   | 
On Thu, Jan 24, 2013 at 5:34 PM, André Knappstein <Kna...@be...> wrote: > Yes-Sir! As soon as I find out where and how this works :-) Hack the tracker.firebirdsql.org. :) -- Jiri {x2} Cincura (x2develop.com founder) http://blog.cincura.net/ | http://www.ID3renamer.com  | 
| 
     
      
      
      From: André K. <Kna...@be...> - 2013-01-28 10:31:15
       
   | 
OK, thanks. I took some time until I could even try, and now I probably understand that tracker software a bit better. So I first have to create a login plus a different filter definition. I guess it is an important tool when working with Firebird, so I will do so at the next opportunity. This specific matter though (DNET 483) obviously has been resolved meanwhile. > On Thu, Jan 24, 2013 at 5:34 PM, André Knappstein > <Kna...@be...> wrote: >> Yes-Sir! As soon as I find out where and how this works > Hack the tracker.firebirdsql.org.  |