SQL 偏移总行计数与 IN 子句一起变慢

这个赏金已经结束。这个问题的答案有资格获得 100 的声誉奖金。赏金宽限期在 2 小时内结束。了解更多 [https://stackoverflow.com/help/bounty]. 泰伦斯杰克逊 [/users/5224564/terrance-jackson]想要吸引更多关注对于这个问题: 开始赏金,因为必须有一个更好的方法来获得分页偏移查询中的总行数。 我使用这个基于另一个答案的 sql,但是当包括一个巨大的 in 子句时,得到总计数。如果我删除总数,那么查询需要不到 1 秒。有没有更好更有效的方法来获得总行数?我看到的答案是基于 2013年的 sql 查询 声明 @ PageSize INT = 10, @ PageNum INT = 1; 以 TempResult 为 ( 选择 ID 、名称 从表 其中 ID 在 (1 、 2 、 3 、 4 、 5 、 6 、 7 、 8 、 9 、 10) ),TempCount 为 ( 从 TempResult 中选择 COUNT (*) 作为 MaxRows ) 选择 * 从 TempResult, TempCount <----- 这就是慢。删除这 ……

共11个回答, 标签: sql sql-server tsql pagination
查询执行非常缓慢,有任何方法可以进一步改进它吗?

我有以下查询,因为很多SUM函数调用,我的查询运行太慢。我的数据库中有很多记录,我想得到今年和去年 (过去 30 天、过去 90 天和过去 365 天) 的报告对于每一个: 选择 B.id 为 [ID] ,D.[标题] 作为 [标题] ,E.Class as [Class] ,Sum (当 a.DateCol> = DATEADD (MONTH,-1,GETDATE ()),然后 a.col1 ELSE 0 结束) 作为 [当前-最近 30 天 Col1] ,Sum (当 a.DateCol> = DATEADD (MONTH,-1,GETDATE ()) 然后 a.col2 ELSE 0 结束) 作为 [当前-最近 30 天 Col2] ,Sum (当 a.DateCol> = DATEADD (季度,-1,GETDATE ()),然后 a.col1 ELSE 0 结束) 作为 [当前-最近 90 天 Col1] ,Sum (当 a.DateCol> = DATEADD (季度,-1,GETDATE ()) 然后 a.col2 否则 0 结束) 作为 [当前-最近 90 天 Col2] ,Sum ( ……

共9个回答,已解决, 标签: c# sql sql-server entity-framework stored-procedures
错误: TCP 提供程序: 错误代码 0x2746。在 linux 下通过终端进行 Sql 设置时

我试图通过遵循文档在我的 linux 中设置 ms-sql server Https://docs.microsoft.com/pl-pl/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017 [https://docs.microsoft.com/pl-pl/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017] SQL server 状态为活动 (运行) 执行命令时,我收到以下错误 本地主机-U SA-P'' 错误: > SQL Server 的 Microsoft ODBC 驱动程序 17: TCP 提供程序: 错误代码 0x2746。Sqlcmd: 错误: SQL Server 的 Microsoft ODBC 驱动程序 17: 客户端无法建立连接。 我也尝试了下命令 Sqlcmd-S 127.0.0.1-U SA-P'' 但是问题没有解决,并且显示了相同的错误。 当我尝试给出错误的密码时,它也会显示同样的错误。 请帮我解决这 ……

共7个回答, 标签: sql-server linux tcpclient
从多个列中获取最后一个日期

这感觉应该是一个简单的。如何获取不同列中的最新日期 下降表 # 负债 创建表 # 负债 (call_case CHAR (10) 、 date1 DATETIME 、 date2 DATETIME 、 date3 DATETIME) 插入 # 负债值 ('key1' 、 '2019-10-30' 、 '2019-11-30' 、 '2019-10-25') 插入 # 负债值 ('key2' 、 '2019-10-20' 、 '2019-10-30' 、 '2019-10-15') 插入 # 负债值 ('key3' 、 '2019-11-11' 、 '2019-10-29' 、 '2019-10-30') 插入 # 负债值 ('key4',null,'2019-10-29','2019-10-13') 选择 call_case,??作为 “最新日期” 从 # 负债 我希望结果是: Call_case 最新日期 Key1 2019-11-30 Key2 2019-10-30 Key3 2019-11-11 Key4 2019-10-29 ……

共5个回答,已解决, 标签: sql sql-server datetime
如何用下一行中的值替换 null 值

我的 sql 查询代码中需要支持。我必须用下一行中的非 null 值替换列中的 null 值。 作为一个例子,我们可以使用这个代码: 声明 @ value 表 (r # int,value varchar (15)) 插入 @ value (r #,value) 值 (1,NULL), (2,'january'), (3,'february'), (4,NULL), (5,'march'), (6,NULL), (7,Null), (8,'死亡'), (9,Null), (10,Null), (11,Null), (12,'november'), (13,Null) 从 @ value 中选择 * 当我使用 lead 函数时,我得到了这个值,但是它不适用于 null。我需要的是: 1月1日 1月2日 2月3日 3月4日 3月5日 12月6日 12月7日 12月8日 11月9日 11月10日 11月11日 11月12日 13 NULL 我查询的 Bu: 选择 r #, 价值 ,当值为 null 时,则导致 (值) 超过 (按 r # asc 排序),否则值最终 来自 @ value 按 r # ……

共4个回答,已解决, 标签: sql sql-server
SQL 中 condtion

从传输数据中选择传输类型 转移类型 ------------- TT,TT 交通,TTH 圣,过境 交通,TTH TT 街 是否有任何方法或内置功能来实现以下结果? 用下面试过在条件,但无法获得所需的结果。 期待结果: 从传输数据中选择传输类型,其中传输类型为 (“tt,st”) 转移类型 ------------- TT,TT 圣,过境 TT 街 从传输数据中选择传输类型,其中传输类型位于 (“t”,传输 ”) 转移类型 ------------- TT,TT 交通,TTH 圣,过境 交通,TTH 从传输类型为 (“tt”) 的传输数据中选择传输类型 转移类型 ------------- TT,TT TT 街 ……

共4个回答,已解决, 标签: sql-server tsql
为什么 SQL MS 允许您创建非法列?

我最近看到一条推特,说你可以阻止其他开发人员使用SELECT * FROM TableName通过以下方式构建您的表: 创建表 [TableName] ( [ID] INT 标识不为空, 【姓名】 VARCHAR (50) 不为空, 【 DontUseStar] (1/0) ); 很容易看到,使用SELECT *这里将尝试将空白列名读取为 1 除以 0 (从而导致除以零错误),但是没有为该列分配数据类型。 为什么 SQL 允许您创建一个没有分配数据类型的列,并且它知道该列的名称是非法的? ……

共3个回答,已解决, 标签: sql sql-server
如果与 asyncn 等待 (从 SQL Server 中的流数据与 Dapper 流式传输数据) 一起使用, 则返回 Ieumerable 会发生什么情况?

我使用 Dapper 从 SQL Server 中非常大的集合中传输数据。它可以很好地返回 IEnumerable 和调用 Query() , 但当我切换到时 QueryAsync() , 程序似乎试图从 sql server 读取所有数据, 而不是流式传输。 根据这个问题 [https://stackoverflow.com/questions/13026558/explanation-of-dapper-buffer-cache] , 它应该很好地工作 buffered: false , 我正在做, 但这个问题没有说明 async/await 什么。 现在根据这个问题 [https://stackoverflow.com/questions/24966019/async-with-huge-data-streams], 做我想做的事情并不简单 QueryAsync() 。 我是否正确地理解在切换上下文时对枚举进行迭代? async/await 另一个问题是, 当新的 C#8 异步流可用时, 这是否是可能的事情? ……

共3个回答,已解决, 标签: c# sql-server async-await dapper c#-8.0
如何在 sql 查询语法中编写多列 ""?

如何在 sql 查询语法中编写多列 ""? 示例:- 我正在寻找名称: Peter 在所有这3列 (或) 这3列中的任何一列: colA, ColA, ColA 从表中: 表 a select * from TableA where (colA, colB, colC) in 'Peter' 表具有数据透视格式的列。候补的将是。为语法中的每一列编写联合查询。 ……

共3个回答,已解决, 标签: sql sql-server
在 SQL Server 中返回单个 NULL

在 Sql Server 中,NULL 不等于 NULL。(为什么在 SQL server 中 NULL = NULL 计算为 false [https://stackoverflow.com/questions/1843451/why-does-null-null-evaluate-to-false-in-sql-server] ) 那么为什么下面的代码返回单个 NULL。 创建表 # tem1 (ID INT) 插入 # tem1 选择 NULL 所有工会 选择 NULL 从 # tem1 中选择不同的 ID # 临时表 ID -- NULL 我期待 ID -- NULL NULL ……

共2个回答,已解决, 标签: sql-server
如何从 asp. net 注入 SQL 数据库?

我很难弄清楚我的代码有什么问题。目的是将 asp 中的注册表单中的数据带到我的 SQL 数据库中的用户数据列。 SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString); try { string cmd = "insert into UserLogin values(@UserName,@Password)"; SqlConnection cnn = new SqlConnection(cmd); SqlCommand cmd2 = new SqlCommand(cmd, cnn); cmd2.Parameters.AddWithValue("@UserName", UsernameBox.Text); cmd2.Parameters.AddWithValue("@Password", PasswordBox.Text); cnn.Open(); cmd2.Exec ……

共2个回答, 标签: c# sql-server
如何简单删除 SQL Server 中的重复记录?[重复]

这个问题在这里已经有了答案: * 如何删除重复行? [/questions/18932/how-can-i-remove-duplicate-rows]37 个答案 我的桌子上有几条重复的记录。我想简单地删除它们,并在表中保留一个条目。 从表 A 中匹配的列是 [SourceGradeId]。 有人能给我看一个非常简单的删除查询吗? ……

共2个回答, 标签: sql sql-server
如何获取拒绝代码的策略计数

我有一个要求,我需要映射拒绝代码,并为每个拒绝代码给出每种类型的策略计数。下面提到的例子。 政策表: PolicyNo | PolType | 我的拒绝代码 ---------- | --------- | -------------- Pol1 | S | M101 ---------- | --------- | -------------- Pol2 | S | M101,M102 ---------- | --------- | -------------- Pol3 | S | M104 ---------- | --------- | -------------- Pol4 | F | m103 、 M108 ---------- | --------- | -------------- Pol5 | F | M106 ---------- | --------- | -------------- Pol6 | F | m103 拒绝映射表: MyRejCode | StandardRejCode ----------------- | ---------------- M101 | S ……

共1个回答, 标签: sql sql-server
如何编写 SQL 查询来返回数据库中每年今天 (月、日) 的所有 &ldquo;历史记录&rdquo;?

我已经使用 Visual Studio 、 C # 和 SQL Server 8 个月了,并且在我学习的过程中创建了一个非常实用的个人项目。但是,在我的程序中,我想要的一点功能是无法自动工作的。 如果我在按钮单击事件中键入此内容,运行程序,然后单击历史按钮,它就可以完美地工作。所有七列信息都可以完美地发送到 datagridview。 SqlDataAdapter sda = 新的 SqlDataAdapter (“从 all concertlist 中选择 *,其中日期为“ %-05-27 ”,按日期排序; 然而,不令人敬畏的是,我想写查询,这样我就可以按下一个按钮 (“历史”) 这将从每年的 5月27日 (或者今天的日期实际上是什么) 返回信息,我只是不知道如何做到这一点。这是一份 “历史上发生在这一天” 的清单。 很明显,我需要从日期列表中选择 *。..不知何故,我需要包括 GETDATE (),否则程序如何知道从 05-27 开始?但是我觉得我需要包括 date fromparts,因为我只希望月和日对实际日期 (今天) 是静态的。不知何故,它一定是一个子查询。 ……

共1个回答, 标签: c# sql-server visual-studio
值为 NULL 的 first _ value 和 last _ value

我想使用 first _ value & last _ value SQL Server 获得前两名的昂贵书籍和最低两名的昂贵书籍价格 Null 的存在给出了不正确的最小价格值,我希望最小价格忽略 null 选择前 2 名 first _ value (价格) 作为 MinPrice, First _ value (标题) Over (按价格排序) 作为 MinName, 作为 MaxPrice 的 last _ value (价格) 超过 (按价格订购), 作为 MaxName 的 last _ value (标题) over (按价格排序) 从标题; 得到这个输出 MINPrice MINName Maxprice MaxName 计算机 $22.95 的心理学是空的,但是它友好吗? 计算机心理学 $21.59 计算机恐惧症和 我期待的结果应该是什么 Minprice MinName Maxprice Maxname 2.99 美元美味微波炉 22.95 美元,但是它友好吗? $2.99 你可以对抗压力 $21.59 电脑恐惧症和 那么,如何从最小价格中消除零值 ……

共1个回答, 标签: sql-server
如何在 Id 列下插入具有不同值的同一表中的相同记录?(注意: ID 是主键自动增量列)

假设我有表级别为 ID name abbr countryid 1 None NN 11 2 Middle MD 33 3 Senior SN 33 4 Junior JN 22 否, 我想在同一个表中插入国家 id 33 的记录与国家 id 44 (国家级44将是输入参数)。但是如何在列 ID 下插入数据呢?id 是自动递增的? INSERT INTO Master_LevelsGrades(Id, LevelName, LevelAbbr, CountryId) ( select ?? ,LevelName,LevelAbbr,@NewCountryId from Master_LevelsGrades where CountryId=33 ) ……

共1个回答, 标签: sql sql-server sql-server-2017-express
通过多个 PHP 页面用 AJAX 函数中的填充变量更新 SQL 查询

我试着在这个问题上得到帮助。 总之,Q: 它不会像我认为的那样一步一步地更新我的数据库条目。 解释起来有点困难,但是我试图用最少和可读的代码一步一步地解释它。我使用原始代码,在可再现的示例中很难转换它。 页面 ma_aktuelle _ readout.php有个 php 部分 ”; ?> 当我点击这个链接时,会调用下面的 javascript 函数,并问我 “真的停止了吗?”?" $ (文件).就绪 (函数 () { $ (“A.stop pen”)。单击 (功能 (e) { 如果 (!确认 (“wirklich stop pen?”) { (); $ ('.Aler').show () 返回 false; } 返回 true; }); }); 。警告 { 显示: 无; } 当我点击 “是” 时,它会打开第二页。 Ma_testende.php 的 2 页在这个页面上有两个 AJAX JS 函数。第一个 Ajax 是通过类型: get从下一页开始,等待成功 (见 B 页 3): /* 功能让 Stoptime 的周期从 DB.TesterCycleCount 祖 erhal ……

共1个回答, 标签: javascript php jquery sql-server ajax
使用 SSAS 多维多维立方体的功率 BI 慢

我们正在使用 SSAS 多维数据集直接查询实施 Power BI。由于某种原因, SSAS Power BI 的性能极其缓慢, 但是使用 SSDT SSAS 应用程序或电源视图或 Excel 的速度要快得多。 我看到 power BI 通过将 MDX 转换为 DAX 查询来转换 SSAS 多维模型。是否有任何方法可以加快 SSAS 的 Power BI 查询, 或直接使用 MDX 查询? 我们正在应用 SSAS 多维模型。 ……

在 Linux 上不工作的 SQL Server 2017 C ODBC 连接

我们正在使用一个 Azure 的 SQL Server 2017 数据库,并希望通过 c 连接到它。我们已经在 windows 上实现了这一不可思议的成就,但是在 ubuntu 上运行这一功能是必要的。 我们使用这个安装了 Linux ODBC 13 驱动程序教程 [https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017#microsoft-odbc-driver-13-for-sql-server] 我们的/等等/odbcinst.ini文件包含以下内容 [SQL Server 的 ODBC 驱动程序 13] 描述 = SQL Server 的 Microsoft ODBC 驱动程序 13 驱动程序 =/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.1.0 UsageCount = 月 【 ODBC 】 Trace = Yes TraceF ……

共0个回答, 标签: c++ sql-server linux g++ odbc
非常奇怪的索引性能在 sql 服务器12

我有一个桌面。此表具有一个主键, 由以下组成: Iddim初级表和 IdDimDate 在开发环境中, 对于一些测试, 我和其他几十个表一起进行了一些清理。 但现在我的维护计划每次到达此表时都会被阻止, 因为现在删除此表中的查询需要花费大量时间 (从未看到完成一次)。 显然没有什么是锁定表。我把十万行插入, 没有问题。 我已经检查索引碎片, 但它是 & lt;2% 和更新的统计数据 现在简单的选择查询需要花费大量的时间。 所以我之前执行的是这个 从 Iddimdate 不在的 FacTableA 中删除 top(1000) * (从视图中选择 IdDimDate) 但现在它无限期地运行。 select top(1) * from FacTableA where IdDimDate not in ( select IdDimDate from view ) 20分钟 > 需要很长时间 (从来没有耐心去完成一个) 与 select top(1000) * from FacExposureMarket where IdDimDate not in ( select IdDimDate fro ……

共0个回答, 标签: sql sql-server indexing