gpt4 book ai didi

sql-server - FSharp.Data.SqlProvider 很慢

转载 作者:行者123 更新时间:2023-12-03 11:22:49 25 4
gpt4 key购买 nike

我有一个包含 4 个表的简单数据库。表 Results 有 18 列。其中 3 个是外键。我正在尝试使用此代码获取所有结果的数量(大约 800k):

#I @"..\packages\SQLProvider.1.1.3\lib"
#r "FSharp.Data.SqlProvider.dll"
open FSharp.Data.Sql


let [<Literal>] ConnectionStringmdf = @"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=C:\Users\Me\Desktop\myDb.mdf;Integrated Security=True;Connect Timeout=10"

type Sqlmdf = SqlDataProvider<
ConnectionString = ConnectionStringmdf,
DatabaseVendor = Common.DatabaseProviderTypes.MSSQLSERVER,
IndividualsAmount = 1000,
UseOptionTypes = true,
CaseSensitivityChange = Common.CaseSensitivityChange.ORIGINAL
>
let dbm = Sqlmdf.GetDataContext()

printfn "Results count:\t %i" (dbm.Dbo.Results |> Seq.length )

获取一个表中的记录数大约需要 40 秒。

为什么这么慢?我究竟做错了什么?

最佳答案

SqlDataProvider 返回的类型实现了 IQueryable,这意味着您可以编写查询表达式或使用 Queryable.Count

open System.Linq

dbm.Dbo.Results |> Queryable.Count

query { for it in dbm.Dbo.Results do
count
}

关于sql-server - FSharp.Data.SqlProvider 很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45056505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com