Hi,
I am planning on using SSCE in a desktop embedded scenario. In considering deployment options, in addition to the SSCE runtime, I would also need to bundle either MDAC (OLEDB) or .NET Framework 2.0 (ADO.NET).
From the installer footprint standpoint, it's a no-brainer since MDAC is much smaller in size than .NET Framework. However, an article from the MSDN library (http://msdn2.microsoft.com/en-us/library/aa719514(VS.71).aspx) talks about the .NET Framework Data Provider for SQL Server and how it performs much better than the OLEDB counterpart.
So my question is, how much of a performance difference is there between using the OLEDB provider vs. the ADO.NET provider? I am primarily concerned with insert speed.
Also, it does seem a little silly when you need a 22.4Mb installer (.NET Framework) for a provider to a database that is under 2Mb in size.
Eugene
That article refers to the .NET OLE DB data provider for the desktop. The SqlClient classes are optimized for SQL Server, where the OleDb classes are generic. You should see a performance difference. But the article talks about .NET providers, not native providers.
My experience is that native code applications using the OLE DB client for SQL CE are the fastest, but also the hardest to write. So if you want speed, use native code and OLE DB.
|||Using SqlCeResultSet.CreateRecord (.NET), will give you very good insert performance, and Rapid Application Development. See a sample at http://msdn2.microsoft.com/en-us/library/system.data.sqlserverce.sqlceresultset.createrecord.aspx
But of course .NET Framework 2.0 will be a client requirement (it is included in the Vista OS, FYI)
|||It is indeed no brainer: either your application is managed and it needs .Net Framework 2.0 in order to run anyway or your application is native and it simply can't use managed providers (not without framework dependency anyway).
In first case use SSCE specific managed provider for best performance and to eliminate the need for MDAC/OLEDB.
In the second case use OLEDB//MDAC as you have no other choice.
|||Thanks for the response, everyone. So OLEDB is it, since my app is actually "managed" by the National Instruments LabVIEW runtime .