Performance comparison between Linq, NHibernate and Stored Procs
posted by theblob(200) 4 years, 4 months ago 0
Senfo, please read the article following the performance comparison. I've said: '...if you feel that certain features lack of performance you should only switch those critical parts of your applications to stored procs. For instance you can tell NHibernate to call stored procs for certain queries...' So I'm not an enemy of stored procedures at all but of the wrong usage. I've experienced that in my company SPs are most often used for CRUDs only. Without code generators. Actually I'm not arguing against SPs but PRO NHibernate, Linq or any other ORM. I see your point on security. But if you're a careful programmer and convert all input to the corresponding data types and filter text inputs for SQL statements you can create an applications as safe as if you've used SPs. I would like to ask you how do you handle the problem of versioning of SPs? I think this is a great problem and I don't know a good solution. Sorry for my bad grammar and spelling. Shame on me. =)
Reply
Jesse, I've run the comparison in the office using a dedicated SQL Server. The performance was inredible good when using SPs. I've run the test a second time at home using a SQL Server installed on my PC. This was suprising because the stored proc was inredibly slow on my machine when reading data out of a table with 10 000 records. This must be an installation issue. And that's the only point I don't understand.
rev4bart, indeed, no PLINQ or indexing or hashing. I just wanted to compare the SQL- / database features of Linq with NHibernate. Not all features of the Linq extensions. Please feel free to have a look at my source and to make suggestions on how to improve my Linq-To-SQL usage. You can find the source in my article.
senfo, scripting the procs and save them into source control is a way I'm aware of but I think it's rather a manual way of versioning. You've mentioned to use code generators for SP creation to speed development time up. Manual versioning will slow it down again and depends on duteous developers. What I think is most critical to versioning is that project teams use only one development-database-server for all developers. That means that one developer can break the application if he or she changes SPs which leads to changes in the client code. Hm...