sql - Entity Framework performance vs Traditional ADO.Net -
to show question try explain sample:
suppose have table usersinfo
these columns:
id, username, password, fname, lname, gender, birthday, hometel, mobile, fax, email, lockstatus
now want select lockstatus
table. in traditional mode made query , send sqlcommand
execute:
select lockstatus usersinfo
and today use entity framework, use of query:
var q = r in new data_dbentities().usersinfo select new { r.lockstatus };
entity sql:
select usersinfo.lockstatus data_dbentities.usersinfo
now start application , trace sql server profiler. if use first type of query (traditional mode) see result:
select lockstatus usersinfo
but when use entity framework (linq || entity sql) sql server profiler show result:
select [extent1].[lockstatus] [lockstatus] (select [usersinfo].[id] [id], [usersinfo].[username] [username], [usersinfo].[password] [password], [usersinfo].[fname] [fname], [usersinfo].[lname] [lname], [usersinfo].[gender] [gender], [usersinfo].[birthday] [birthday], [usersinfo].[hometel] [hometel], [usersinfo].[mobile] [mobile], [usersinfo].[fax] [fax], [usersinfo].[email] [email], [usersinfo].[lockstatus] [lockstatus] [dbo].[usersinfo] [usersinfo]) [extent1]
we can see ef in background select of columns.
now question is: want select 1 column, ef selects of columns. if had 100,000 records in table, performance bad!
maybe use function or stored procedure, when want select different columns in different tables, that's not idea.
what think? there way?
the query ef generated has redundant derived table in selects 1 column. sql server, , mainstream rdbms, physically touches single column in case. don't worry performance. cosmetics.
you have done nothing wrong. there's nothing you.
Comments
Post a Comment