我有一个存储路由的SQL数据库。我将路由信息存储在一个表中,将坐标存储在另一个表中。
现在,如果你把所有的路线加起来,我有大约40条路线和50k坐标。
我使用以下LINQ代码来获取数据
var query = (from b in db.routes select new {
name = b.name,
id = b.route_id,
coor = b.coordinates.Select(c => new
{
seq = c.sequence,
lat = c.position.Latitude,
lon = c.position.Longitude
}) });这个查询需要4.5秒才能执行,我觉得这很好。
我不熟悉索引,现在两个主键都是聚集索引,而主键是我用下面的SQL命令创建的普通(??)-indexes:
CREATE INDEX IX_route on [db].[coordinates] (route_id)我的数据库是否很慢,或者这对于这个数据量来说是正常的吗?
发布于 2013-04-29 22:58:33
如果您可以处理平面化的结果,则此查询可能会为您提供更好的性能:
var query = from b in db.routes
from c in b.coordinates
select new
{
name = b.name,
id = b.route_id,
coor = new
{
seq = c.sequence,
lat = c.position.Latitude,
lon = c.position.Longitude
}
};https://stackoverflow.com/questions/16278041
复制相似问题