优化这段代码 protected virtual PlatformCustomerRecordExcel QueryExcel(SearchCompanyByProjectReq input, StringBuilder sql) { PlatformCustomerRecordExcel result = new PlatformCustomerRecordExcel(); using (var db = GetReadDb()) { var list = new PagedResult<SearchPlatformCustomerResult>(); string where = sql.ToString(); result.PlatforCompanyData = db.SqlQueryable<PlatforCompanyData>($@" select b.PID,b.CompanyName,b.OrganizationCode,bi.DetailedAddress,bi.OperationState from MallDataBase.Platform_BusinessMain b inner join {TABLE_NAME} c on b.PID=c.CompanyId INNER JOIN malldatabase.platform_businesslicense bi on b.PID=bi.PID where b.IsDelete=0 and bi.IsDelete=0 and c.IsDelete=0 {where} ").OrderByIF(input.OrderBy.IsNotEmpty(), input.OrderBy).ToList(); result.PlatforCompanyFinancing = db.SqlQueryable<PlatforCompanyFinancing>($@" select f.CompanyID,f.FinancingTime,f.FinanceScale,f.FinanceMode,f.Shareholder from MallDataBase.Platform_BusinessMain b inner join {TABLE_NAME} c on b.PID=c.CompanyId INNER JOIN crmdatabase.view_company_years_financing f on b.PID=f.CompanyId where b.IsDelete=0 and c.IsDelete=0 {where} and not f.FinanceMode like '%退市%' ").ToList(); result.PlatforCompanyTag = db.SqlQueryable<PlatforCompanyTag>($@" select etl.CompanyID,etl.Tagid from MallDataBase.Platform_BusinessMain b inner join {TABLE_NAME} c on b.PID=c.CompanyId INNER JOIN malldatabase.view_ent_tagrelation_list etl on b.PID=etl.CompanyId where b.IsDelete=0 and c.IsDelete=0 {where} and not f.FinanceMode like '%退市%' ").ToList(); } return result; }
时间: 2024-02-10 18:35:27 浏览: 91
详解C++中StringBuilder类的实现及其性能优化
这段代码可能存在的优化点如下:
1. 使用异步操作:这段代码中的数据库操作是同步的,可能会影响程序的性能。可以考虑使用异步操作来提高程序的性能。
2. 减少 SQL 查询次数:这段代码中使用了多个 SQL 查询,可以考虑将多个查询合并成一个查询,从而减少 SQL 查询次数,提高程序的性能。
3. 减少重复代码:这段代码中多次使用了相同的查询条件,可以考虑将相同的查询条件提取出来,放在一个变量中,从而减少重复代码。
4. 避免使用 LIKE 操作符:这段代码中使用了 LIKE 操作符,这可能会影响程序的性能。可以考虑使用其他操作符替代 LIKE 操作符。
5. 使用缓存:这段代码中每次查询都会访问数据库,可以考虑使用缓存来减少对数据库的访问,提高程序的性能。
6. 使用 LINQ:这段代码中使用了 SQL 语句进行查询,可以考虑使用 LINQ 来进行查询,从而提高代码的可读性和可维护性。
综上所述,可以在代码中进行上述优化,以提高程序的性能和可维护性。
阅读全文