SQL Server 2012 presenta un mecanismo más eficiente para paginación usando FETCH y OFFSET que podría tener un gran impacto en el rendimiento de las aplicaciones que usan mucha paginación. ¿Entity Framework 5 es compatible con esto? Entonces, si estoy usando EF para enviar páginas usando Take + Skip, ¿las consultas LINQ se traducirán al nuevo TSQL 2012 si EF apunta a SQL Server 2012?Entity Framework y SQL Server 2012 Paging
Respuesta
EF 5 no es compatible con esta característica, de hecho, creo que ninguna de las características de SQL Serve 2012 está disponible en EF. Puede votar por esta función en Data UserVoice para moverla en la cartera de pedidos del equipo de ADO.NET.
Como dijo @Ladislav, EF 5 no es compatible con OFFSET & FETCH. Dicho esto, quería agregar un poco de perspectiva. No creo que debería importar mucho.
Cuando compra en un ORM como Entity Framework, está obteniendo la generación de su consulta (por razones perfectamente válidas). Si EF utiliza la consulta de estilo 'anterior' CTE
con Row_Number()
o la más reciente Fetch
/Offset
es un detalle de implementación. Microsoft podría actualizar el código EF en cualquier momento y cambiar la generación de consultas para usar una u otra.
Si desea controlar más de la generación de consultas, ya sea:
- uso de EF 'mapeo procedimiento almacenado' capacidad
- Utilizar procedimientos almacenados directamente con EF (algo que hago muy a menudo)
- escritura ADO/SQL usted mismo, o
- uso más limitado de micro-ORM como masiva/PetaPoco
¿Entonces importa?
Bueno, para un desarrollador que escriba consultas la nueva sintaxis será un alivio bienvenido. Por otro lado, es doesn't appear que existe un verdadero performance difference between el antiguo método CTE y la nueva sintaxis. Entonces, desde la perspectiva de EF, no realmente. Se incurre en un significant overhead usando EF, el método de paginación probablemente no será su punto de ruptura.
- 1. Entity Framework y SQL Server Tuning Advisor
- 2. Entity Framework y SQL Server Ver
- 3. Entity Framework y SQL Server Sinónimos
- 4. nHibernate y SQL Server 2012 LocalDB
- 5. SQL Server 2012
- 6. SQL Server 2012 secuencia
- 7. Compatibilidad con versiones anteriores de SQL Server en Entity Framework?
- 8. Entity Framework Asignación DateTimeOffset a SQL Server DateTime
- 9. Sql Server texto libre a través de Entity Framework
- 10. Cifrado de SQL Server 2008 R2 - con Entity Framework
- 11. ¿Cómo maneja Entity Framework los esquemas de SQL Server?
- 12. LINQ To SQL Paging
- 13. Dynamic SQL Query Entity Framework
- 14. Debugging Entity Framework Sentencias SQL
- 15. Linq to SQL and Entity Framework Diffrences?
- 16. Error de desinstalación de SQL Server 2012
- 17. Optimización Entity Framework
- 18. ¿Fluentmigrator funciona con SQL Server 2012?
- 19. Entity framework y VARBINARY
- 20. Entity Framework y MongoDb
- 21. SqlBulkCopy y Entity Framework
- 22. Vistas y Entity Framework
- 23. Entity Framework y multihilo
- 24. datetime2 y ProviderManifestToken en Entity Framework
- 25. Entity Framework 4 y valores predeterminados
- 26. Entity Framework y Connection Pooling
- 27. Entity Framework y SQL Server agrega espacios en blanco en cadenas?
- 28. Rendimiento muy bajo para inserción por lotes con SQL Server CE 4.0 y Entity Framework 4.2
- 29. ¿Cómo leer/escribir datos geográficos usando C#, Entity Framework y SQL Server 2008?
- 30. ¿Cómo acceder a FileTables desde Entity Framework?
No es más eficiente. Más legible –
Fetch y Offset tienen un beneficio de rendimiento, ya que reducen la carga útil devuelta por SQL Server http://www.mssqltips.com/sqlservertip/2696/comparing-performance-for-different-sql-server-paging-methods/ – Judo
@Judo Los enfoques basados en ROW_NUMBER devuelven el mismo conjunto de resultados. Sin embargo, puede haber beneficios de rendimiento por diferentes razones. – John