1

我有一个存储路由的 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 命令创建的普通(??)索引:

CREATE INDEX IX_route on [db].[coordinates] (route_id)

我的数据库是慢还是这样的数据量是正常的?

4

1 回答 1

1

如果您可以处理扁平化的结果,则此查询可能会为您提供更好的性能:

            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
                            }
                        };
于 2013-04-29T14:58:32.747 回答