寻找一些关于如何优化我们的一个项目的建议。我们有一个 ASP.NET/C# 系统,它从 SQL2008 数据中检索数据并将其呈现在 DevExpress ASPxGridView 上。检索到的数据可以来自多个数据库之一——所有数据库都略有不同,并且会定期添加和删除。向用户呈现实时“公司”列表,并从相应的数据库中检索数据。
目前,正在使用标准 SqlDataSource 和动态创建的 SQL SELECT 语句检索数据。语句中有一些 JOIN 以及可选的 WHERE 约束,它们再次根据数据库和用户的权限级别动态创建。
除了性能之外,所有这些都很棒(老实说!)。当涉及到一些数据库时,有几十万行,并且检索和分页数据非常慢(数据库已经正确索引)。因此,我一直在寻找加快系统速度的方法,似乎可以归结为两种选择:XPO 或 LINQ。
LINQ 似乎是流行的选择,但我不确定使用本质上如此动态的系统来实现它有多容易——我是否需要为 LINQ 可以访问的每个数据库创建“定义”?我也有点不确定是否动态地创建 LINQ 查询,尽管查看一些至少部分似乎可行的示例。
另一方面,XPO 似乎允许我动态创建 XPO 数据源。但是,我找不到太多关于如何加入其他表的信息。
任何人都可以就哪种方法(如果有的话)最好地尝试和改造到这个项目中提供任何建议吗?还是当前使用的动态 SQL 模型与 LINQ 和 XPO 根本不同,最好不要管它?