我有一个这样的请求
SELECT
[EstimateId],
[CreationUserId],
[EstimateStatusValueId],
[LanguageId],
[LocationId],
[EstimatorUserId],
[FilterUnitSystemTypeId],
[EstimateNumber],
[RevisionNumber],
[CreationDate],
[ModificationDate],
[ProjectDescription],
[IsBsdq],
[ClosingDate],
[ClosingTime],
[ClosingUpdatedOn],
[DeadLineDate],
[IsReceived],
[Inclusion],
[Exclusion],
[Misc],
[Note],
[WorkDeadLines],
[Comments],
[Validity],
[PlansLocation],
[PlansReceivedFrom],
[Price]
FROM [Estimate].[Estimates]
ORDER BY [ClosingDate] ASC, [ClosingTime] ASC
Run Code Online (Sandbox Code Playgroud)
当我在 SSMS 中运行此查询时,执行时间为 953 毫秒,但是当我从 C# 中的 Linq 查询运行此查询时,执行时间为 1813 毫秒。
Linq 查询使用“.Net SqlClient 数据提供程序”并针对 EntityFramework(EDMX 文件)发出。这可能是一个问题吗?
有谁知道为什么我在那些相同但从不同上下文针对同一数据库执行的请求的执行时间之间有很大差异?
我验证了两个请求的所有执行计划,它们使用相同的索引来满足各自的查询。
要查看 C# 请求的执行计划,我使用 SQL 分析器捕获 Show Plan XML 事件,并将其与 SSMS 之一进行比较,两者相同。
我知道我可以执行 aDBCC CHECKDB
并获取我的数据库的状态。
问题
谁能告诉我在哪里可以找到这些页面 ID?
我有一个在标题列上启用全文搜索的表格。我尝试使用包含表进行加权搜索,但我得到了 Rank 值的算术溢出。查询如下
SELECT ID, CAST(Res_Tbl.RANK AS Decimal) AS Relevancy , Title
FROM table1 AS INNER JOIN
CONTAINSTABLE(table1,Title,'ISABOUT("pétoncle" weight (.8), "pétoncle" weight (.8), "PÉTONCLE" weight (.8))',LANGUAGE 1036 ) AS Res_Tbl
ON ID = Res_Tbl.[KEY]
Run Code Online (Sandbox Code Playgroud)
当我执行此查询时,我得到:int 类型的算术溢出错误,值 = -83886083125.000076。
如果我删除两个 ';' 之一 在ISABOUT 函数中,查询成功完成。
请注意,如果查询成功完成没有结果,您需要有一些结果。
有谁知道如何解决这个问题?
这个问题也在Stackoverflow 上
我想跟踪在特定表中读取记录的次数。
假设我们有这张桌子
ID Name
1 Cat
2 Dog
3 Fish
Run Code Online (Sandbox Code Playgroud)
我想知道记录“Cat”被读取了多少次,记录“Dog”被读取了多少次等等。
实现这一目标的最佳方法是什么?