我有一个 SSD,使用 IOmeter 测试,显示性能超过 200MB/s。但是,当我从本地机器运行任何 SQL 查询时,Windows 资源监视器永远不会显示超过 7MB/秒的磁盘 IO。即使对于运行时间超过 2 分钟的查询也是如此。瓶颈是什么,它仅使用 SSD 的 7MB/秒?
我在跑:
正如SQL Server 最佳实践所说,“ Windows 身份验证模式比 SQL 身份验证更安全”。现在我想知道:有没有办法保护 SQL Server 免受具有 Windows 管理员权限的用户的攻击?
我最近设置了 SSDT 供我们的开发人员使用。我们通过 SSDT 通过限制每个开发人员在连接到服务器(db_datareader、db_datawriter)时拥有的权限来强制更改我们的开发数据库。在 SSDT 中,我们使用部署脚本将更改发布到数据库,该脚本使用具有提升权限的登录进行连接。
我的问题。鉴于我们已经走到了这个长度来锁定数据库(以阻止模式漂移);有没有什么方法可以让开发人员在没有 db_owner 权限的情况下查看这个数据库上的图表?我知道每个开发人员都可以创建和查看他或她自己的图表,但我希望他们能够查看由许多不同开发人员创建的所有图表。
我不认为这会有所帮助,但我们正在运行 sql server 2012
任何帮助都会得到很大的帮助。
我对 DBA 工作没有经验,但我正在尝试为我们的 sql server 请求额外资源提供一个案例,并希望我可以让一些聪明的人粗略估计我们应该运行的内容。我怀疑 IT 分配给我们的生产 sql server 的资源分配很低。
硬件软件:
数据库:sql server 2008 r2 企业数据库
Windows:Windows 2008 r2 Enterprise 64 位,非常确定可以在 VMware 上运行。
处理器:Intel(R) Xeon(R) CPU E7-4860 @ 2.27GHz 2.26 GHz(2 个处理器)
安装内存:4GB
数据库文件硬盘:300GB
备份硬盘:150GB
日志硬盘:100GB
应用:
我们有 3 个主要数据库,数据加起来大约为 170GB,同一台服务器上的 Reporting Services 数据库 (SSRS) 可能包含每天生成的 10 个不同的报告(每个报告平均包含 70 万条记录)。我们的用户群大约有 20 个同时使用的用户,其中 5 个可能被认为是“资源密集型”,生成数据处理大型报告。大多数用户通过asp.net 网站和报表服务器网站与数据库进行交互。此外,我们的开发人员通过直接远程连接到服务器(最多 2 个远程连接)在 BIDS 中广泛使用 SSIS。最后,我们有一个相当复杂的数据仓库操作,它可能每天通过也在服务器上运行的 SSIS 包带来 300 万条记录。
当前问题:
我们有长期的服务器超时,对网站的响应时间非常糟糕。我怀疑我们拥有的内存量(4GB)可能是一个很大的瓶颈。我们之前对额外内存的请求已被拒绝,因为我们需要执行更多查询优化的常见响应。虽然我们不是 sql 专业人士或(我相信您可以通过我们的设置看出)db admin 专业人士,但我想确保我不会花费所有时间试图挤出一点潜在的性能,如果硬件是瓶颈。
感谢所有人的 tl;dr 回避!
我最近参与维护一组具有一些有趣索引问题的数据库。最让我恼火的是开发、测试、模型和生产机器之间的指标差异。由于差异使得调优查询变得相当困难,因此同步它们是我的第一个项目之一。
当我比较了测试和模型环境时,我注意到模型环境中的大多数索引都STATISTICS_NORECOMPUTE设置为 ,ON而测试中的索引没有。在所有环境中,都有更新所有数据库统计信息的夜间作业。
我以前从未处理过STATISTICS_NORECOMPUTE,所以这里是我的问题。处理此设置时是否有任何最佳做法?如果我在一天结束时进行统计更新,最好打开STATISTICS_NORECOMPUTE所有索引的所有环境?或者有充分的理由不这样做吗?
编辑:我发现了金佰利特里普的关于这一主题的博客之一在这里,似乎表明STATISTICS_NORECOMPUTE应谨慎充其量只能使用。但我仍然担心在全球范围内关闭它。有没有人试过这个,他们经历了什么?
我有一个脚本组件,它接受来自 SQL Azure 数据库表的记录。然后该脚本调用一个 Web 服务,该服务返回失败和成功记录的数量。
对于所有记录,我想添加具有“成功”或“失败”的状态字段,这会从脚本组件获取输出。
然后我将这些输出记录到一个文本文件中。
问题:我无法为每个输入记录添加状态,因为 Web 服务调用仅在执行后发生。
我试过这个,但仍然不起作用:
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
listOfData.Add(new ClockData
{
TimeClockID=Row.TimeClockID,
PersonID=Row.EmployeeCode,
LocationCode=Row.ClockInServiceContextID,
ClockInDateTime=Row.ClockInDateTime,
ClockOutDateTime=Row.ClockOutDateTime
});
}
public override void CreateNewOutputRows()
{
MessageBox.Show("Test CreateNewOutputRows");
MessageBox.Show(listOfData.Count.ToString());
foreach (var item in listOfData)
{
Output0Buffer.AddRow();
Output0Buffer.EmployeeCode = item.PersonID;
MessageBox.Show(item.PersonID);
}
}
Run Code Online (Sandbox Code Playgroud) 我是使用 MSSQL 的新手,目前有 2012 版本。我要做的是为包含的数据库创建一个用户,并仅授予该用户访问该数据库的权限。
我将使用准备好的语句从 JAVA 调用此 SQL。
Google 搜索在如何查找没有聚集索引的表上产生了数百万次点击,PK 通常是表的聚集索引。然而,一个表很容易有一个自然键作为聚集索引,和一个非聚集代理索引,如标识列。
如何在没有定义主键的情况下查找数据库中的所有表?我在这个数据库中有 245 个表:手动检查效率非常低。
我想弄清楚,如何在我的报告中隐藏那些行,其中总分配和总成本在 SSRS 2008 中的 BOTH COLUMNS TOGETHER 为 0。
例如:
总分配 总实际成本 0 0 <---- 隐藏 100,00 0 <---- 不要隐藏 0 50,0000 <---- 不要隐藏
这是屏幕截图:

谢谢
我想使用可以容纳超过 19 位数字的数据类型。那么是否有任何可用的数据类型可以容纳大于 19 位的数字?
sql-server ×10
hardware ×2
ssrs ×2
datatypes ×1
index ×1
performance ×1
permissions ×1
primary-key ×1
security ×1
ssis ×1
ssrs-2008 ×1
statistics ×1