浙江省住房建设厅网站首页,兰州装修公司哪家口碑好,公司在兰州要做网站怎样选择,网站没有流量怎么办介绍最近一直在使用PetapocoEntity Framework Core结合开发一套系统。使用EFCore进行Code First编码#xff0c;使用使用Petapoco进行数据库的常规操作。并且结合PetaPoco.SqlKata的使用#xff0c;减少了编写SQL语句的工作量#xff0c;对提升开发效率有很大的帮助。Petapo… 介绍最近一直在使用PetapocoEntity Framework Core结合开发一套系统。使用EFCore进行Code First编码使用使用Petapoco进行数据库的常规操作。并且结合PetaPoco.SqlKata的使用减少了编写SQL语句的工作量对提升开发效率有很大的帮助。Petapoco对数据库的支持非常的全包括常规的一下数据库SQL ServerSQL Server CEMS AccessSQLiteMySQLMariaDBPostgreSQLFirebird DB和Oracle。当然SQL Server为默认的支持。PetaPoco.SqlKata支持的数据库也是非常全的包括SqlServer, MySql, Postgres, Firebird, SQLite, Oracle。遇到的问题在数据库操作过程中发现每个Controller的Index页面加载的非常缓慢加载完成大约需要5s的时间在浏览器端等待的时间相对来说是非常长的一个时间。对于出现的问题终于有时间进行解决一下了。系统运行加载页面耗时情况先来看一下未使用Order By加载页面的耗时情况第一个图中涉及的表的主键为guid类型第二个图中涉及的主键为ulong类型对于不同的主键进行分页查询时也有较大影响。使用OrderBy的耗时情况使用Order by加载页面的耗时情况解决方法测试耗时码代码未有时对出现的问题使用StopWatch进行监视运行时间的长短使用了分页的两种方法区别是否加Order By语句组成成如下四种情况PageAsync Order byPageAsyncPage Order byPage代码如下运行后台输出的日志信息可以看到对于是否加Order By对查询耗时的影响是非常大的对是否使用异步方法对耗时也有部分的影响❆Benchmark测试对于上述的四种情况再次使用Benchmark进行一次性能测试对使用的数据表的实体类不在列出namespace PetaPocoPageBenchMark
{ class Program { static void Main(string[] args) { var summary BenchmarkRunner.RunPetapocoPage(); Console.WriteLine(Hello World!); } } public class PetapocoPage { public static IDatabase Database new Database(DatabaseConfiguration.Build() .UsingConnectionString( server192.168.88.3;port3306;uidroot;pwdbiobase;databaseBiobaseProductionQrCode;) .UsingProviderMariaDbDatabaseProvider()); [Benchmark] public void PageOrderBy() { Database.PageProductManufactureLineDetailDto(1, 20, order by CreateDate); } [Benchmark] public void Page() { Database.PageProductManufactureLineDetailDto(1, 20); } [Benchmark] public void PageOrderByAsync() { Database.PageAsyncProductManufactureLineDetailDto(1, 20, order by CreateDate); } [Benchmark] public void PageAsync() { Database.PageAsyncProductManufactureLineDetailDto(1, 20); } }
}Benchmark测试结果对性能测试结果可以看到使用Order By对性能的影响确实是非常大。赶快来分享关注吖