每天我都有一个会话产生 Avg.Disk Queue Length > 800(5 分钟间隔)。
我发现就在这之前 Sql Server 优化器犯了一个错误:它决定使用一个不合适的计划进行聚集索引扫描,这会产生大约 100Mb-1GB 的 IO 操作。假设我找到了排队的原因,但这不是全部。
恕我直言,巨大的 IO 不一定会冻结其他用户 15 分钟。虽然我不知道谁负责创建过多的异步 IO:Sql Server、Windows 文件系统,或者可能是物理 IO 控制器,但是产生的异步 IO 会导致一个巨大的异常队列,并且没有留下任何机会供其他会话从磁盘读取。
有没有办法控制异步IO?我想如果我能够降低队列长度(顺便说一句,“更真实的”当前队列长度计数器显示队列中有 400 个操作),那些查询计划的问题将不会冻结其他会话。
不过情况比较复杂:
更新:该表一点都不有趣,只是它对于 NAV 来说太大了(1 GB 带索引)。
一些查询的示例:
declare @p1 int set …Run Code Online (Sandbox Code Playgroud) 我正在设计一个棒球模拟程序,但在设计 boxscore 模式时遇到了问题。我的问题是我想跟踪每局得分的次数。我在实际程序中这样做的方法是使用一个动态数组,该数组随着每局比赛而增长。
对于那些不熟悉棒球比赛的人来说,比赛通常是九局,除非比赛在第 9 局结束时仍然打平。因此,棒球比赛的长度不确定,这意味着我不能将数据库设计为每局得分只有 9 列(技术上是 18(9 局 * 2 队)。我的一个想法是序列化数组并将其编码为 Base64,然后再将其存储在数据库中。但是,我不知道这是否是一种很好的技术,我想知道是否有人有更好的主意。
如果重要,我正在开发的数据库是 PostgreSQL。
任何建议都非常感谢!谢谢!
当谈到这个领域时,我相当绿色。我是一家小医院的数据分析师,现在 8 个月了,我在一个新的职业领域获得了 2 年的学位。
情况
我们有一个 Cobol“数据库”(我使用术语数据库轻轻......)。它是一个专有的分层数据库。我们有一个辅助软件解决方案,它在其上提供 ODBC SQL 层,以便通过标准接口进行外部访问。它有我认为符合 SQL 99 的命令。
COBOL 数据库到 SQL 有很多不足之处。索引是一成不变的。因此,如果我想做任何未在索引的一两个字段上键入的查询(索引 = 患者编号。因此,如果我想查询入院/出院日期......忘记它)......它很慢. 联接将 5 分钟的查询转换为 45 分钟的查询。许多查询会减慢系统的 REST 速度,从而导致不好的事情。
虽然系统确实有一个内部查询系统,但我认为它绝不是完整的。它有优点也有缺点,但主要问题是与外界的合作,我也需要发送报告。
题
我正在尝试构建...是一个 TSQL 数据仓库。我想创建一个过程,将数据拉入我可以控制的 SQL 环境中(添加索引,使用 case 语句等现代东西,“简单”查询不需要 15 分钟)。
我想知道专家会建议哪些好的资源、教程和工具。我的理想情况是将所有数据“历史”加载到 T-SQL 数据库中,然后每周加载新数据。这对于“实时”报告来说并不理想,但我的大部分报告需求都可以通过“稍微”旧的数据来满足。
我一直在搞乱##Temp 表、合并到、更新等,试图看看加载和更新的时间是什么,什么不是......但在我深入之前,我想了解一些一般情况建议。
我有一个 2 节点集群(NODE-A 和 NODE-B),它们之间分布着 2 个 SQL 实例。INST1 更喜欢 NODE-A,INST2 更喜欢 NODE-B。INST1 开始产生错误,然后故障转移到 NODE-B。在记录“恢复完成”后,将 INST1 迁移回节点 A 会生成连接错误。信息。
赢得 2008 R2 Ent。
SQL 2008 R2 Ent。
第一次失败后事件日志中的错误:
[sqsrvres] CheckQueryProcessorAlive: sqlexecdirect failed
[sqsrvres] printODBCError: sqlstate = HYT00; native error = 0; message = [Microsoft][SQL Server Native Client 10.0]Query timeout expired
[sqsrvres] OnlineThread: QP is not online.
[sqsrvres] printODBCError: sqlstate = 08S01; native error = 0; message = [Microsoft][SQL Server Native Client 10.0]The connection is no longer usable because the server …Run Code Online (Sandbox Code Playgroud) 通常,当我看到使用以下内容的 SQL 时:
select * from employees where epmloyeeTypeId in (select id from type where name = 'emp')
Run Code Online (Sandbox Code Playgroud)
我where用这个替换:
select e.* from employees e
inner join type t on t.id=e.epmloyeeTypeId and t.name = 'emp'
Run Code Online (Sandbox Code Playgroud)
如果它是一个not in(如下所示)而不是一个in子句,是否可以对逆做同样的事情?
INSERT into Subscriptions(ProjectId, RecordTypeCID, NTID, Active, Added, LastUpdate, UpdateBy)
SELECT @ProjectId, RecordTypeCID, @NTID, 1, GETDATE(), GETDATE(), @NTID
FROM @Check CHK
WHERE CHK.ActiveStatus=1
And Not Exists (SELECT SubscriptionId FROM Subscriptions
WHERE ProjectId=@ProjectId
and NTID=@NTID
and RecordTypeCID = CHK.RecordTypeCID
) …Run Code Online (Sandbox Code Playgroud) 我刚刚创建了一个 UDF 并对其进行了测试,我发现只有在使用此语法时才有效
SELECT [PMIS].[dbo].[fnIsReportingTo] (50,1132)
Run Code Online (Sandbox Code Playgroud)
我期待它像这样工作:
select * from fnIsReportingTo (50,1132)
Run Code Online (Sandbox Code Playgroud)
或者
select fnIsReportingTo (50,1132)
Run Code Online (Sandbox Code Playgroud)
这是我的创建 SQL:
create function fnIsReportingTo
(
@BossID int,
@EmployeeID int)
RETURNs bit
AS
begin
declare @ret bit
if exists (select * from dbo.fnGetEmployeeHierarchy(@BossID) where employeeID=@employeeID)
select @ret=1
else
select @ret=0
return @ret
end
Run Code Online (Sandbox Code Playgroud) 你如何计算 mysql max_connections ?
你有什么考虑?
我是一个开发人员,他继承了一个功能齐全的盒子,可以做我需要的大部分工作。除了机器名称仍然是旧开发者的名称(我们将其命名为“{username}-dt”或“{username}-lt”以方便网络上的 id)并且我想将其从 old-username 重命名为我的用户名。
当然,这也会影响 SQL,所以我想在重命名我的机器之前,我会就我需要做的事情征求更有经验的建议。我知道有一些“sp_”sproc 需要运行,但是我什么时候运行它们?我是否需要在之前或之后重新启动我的盒子,我是否需要一定级别的特权?它会破坏盒子上任何现有的基于 Windows 的身份验证(这些帐户无论如何都是 AD 帐户)?
是否可以在 Windows 服务器环境中安装 SQL Server 开发版作为开发服务器?每个开发人员都将拥有相同 SQL Server 版本的本地副本,并将连接到此开发服务器以进行数据/对象同步。
此外,如果您可以参考此产品的完整说明的链接。
这个问题的灵感来自发布到最新 ServerFault 博客文章的评论:
你们还在使用 LINQ to SQL 吗?
我知道我可以使用SQL Server Profiler和/或该ToTraceString方法来查看生成的查询和分析他们自己。但是,我正在寻找具有管理由使用实体框架的应用程序访问的数据库的实践经验的人的意见。
实体框架查询是性能问题的常见原因吗?
在这种情况下可以优化 LINQ 查询还是原始 Transact-SQL 是唯一的解决方案?
sql-server ×5
ado.net ×1
clustering ×1
except ×1
functions ×1
hierarchy ×1
installation ×1
my.cnf ×1
mysql ×1
orm ×1
performance ×1
postgresql ×1
schema ×1
syntax ×1