小编SQL*_*ner的帖子

SQL Server NTFS 分配单元大小

在运行 SQL Server 2008 R2 的 Windows 2008 R2 上,NTFS 分配单元大小对磁盘 IO 性能有多重要。在我看来,为关键任务应用程序构建少数服务器的服务器管理员将 NTFS 分配单元大小(集群大小)默认为 4 KB 而不是 64 KB。SQL 服务器已安装。

是否值得一试——卸载 SQL——将驱动器格式化为 64 KB 集群大小并重新安装 SQL 服务器?

sql-server-2008 sql-server

16
推荐指数
1
解决办法
5万
查看次数

并行统计更新

在 SQL Server 2008 或更高版本中,是UPDATE STATISTICS WITH FULLSCAN单线程操作还是可以使用并行性?如何使用默认采样更新统计信息 - 它可以使用并行性吗?我没有看到指定MAXDOP更新统计信息的选项。

sql-server-2008 sql-server parallelism statistics

14
推荐指数
1
解决办法
5327
查看次数

工作区内存内部

根据我阅读的关于 SQL Server 2008 Internals and Troubleshooting(从伊利诺伊州的当地图书馆借来)的书籍,Christian Bolton、Brent Ozar 等。我试图在 SQL Server 上寻求理解和确认,并在网上进行大量搜索,如果有人,我将不胜感激可以确认或更正我的理解。

每个需要查询内存授予的查询或操作都需要工作空间内存。在使用排序、哈希匹配连接、并行(不确定)、批量插入(不确定)、索引重建等的一般查询中,将需要查询工作区内存..

工作区内存是 SQL Server 缓冲池的一部分(它作为缓冲池的一部分分配),最大工作区内存是分配给缓冲池的内存的 75%。默认情况下,单个查询无法获得超过 25% 的工作区内存(在 SQL 2008/SQL 2012 中——由开箱即用的资源调控器默认工作负载组控制)。

寻求确认我的理解

1) 考虑到具有 48 GB RAM 和最大服务器内存配置为 40 GB 的系统,这是否意味着最大工作区内存限制为 30 GB,并且单​​个查询不能获得超过 10 GB 的工作区内存(查询内存)。因此,如果您有一个处理 10 亿行进行大规模散列连接的错误查询,并且需要超过 10 GB 的内存(工作区内存),它甚至会关心通过此内存授予队列或立即溢出到磁盘吗?

2) 如果执行大规模排序操作的查询已分配 5 MB 的工作空间内存,并且在查询的查询执行期间,如果查询优化器意识到由于错误的统计信息或缺少索引,该查询实际上需要30 MB的工作空间内存将立即溢出到 tempdb。即使系统在执行期间有足够的工作空间内存可用,一旦查询在执行期间超过授予的工作空间内存,它也必须溢出到磁盘。我的理解是否正确?

sql-server-2008 sql-server-2012

13
推荐指数
1
解决办法
1406
查看次数

SQL Server 2012 可用性组是“AlwaysON”吗?

在传统的 SQL Server 群集中,当发生故障转移时,所有连接到 SQL Server 失败实例的客户端都会失去连接,每个客户端都必须重新建立到故障转移群集实例的新连接。

AlwaysON 可用性组是否可以缓解此问题?SQL Server 2012 AlwaysON 可用性组的故障转移对于连接到 SQL Server 的客户端是否透明?

sql-server-2008 sql-server sql-server-2012 availability-groups

11
推荐指数
1
解决办法
2456
查看次数

锁使用的内存

我有点好奇,具有 128 GB 数据库 RAM 大小的 SQL 2012 企业版之一是 370 GB 并且还在增长,锁 (OBJECTSTORE_LOCK_Manager) 内存管理员使用的内存量显示为 7466016 KB。我也可以通过查看性能计数器来确认select * from sys.dm_os_performance_counters where counter_name = 'Lock Memory (KB)'

但是,当我运行查询时

select count(*) from sys.dm_tran_locks
Run Code Online (Sandbox Code Playgroud)

它只显示了 16 个锁。那么什么是使用超过 7 GB 的锁。有办法查到吗?

这是否意味着一旦分配了锁的内存,SQL 还没有释放它?在过去的 1 小时内,我没有看到锁计数超过 500,但锁内存保持不变。

最大服务器内存为 106 GB,我们没有在内存中使用锁定页面,我在过去 12 小时内没有看到任何内存压力或错误日志中的任何错误。可用 MBytes 计数器显示超过 15 GB 的可用内存。

活动监视器始终显示 0 个等待任务,因此显然没有阻塞。

考虑到 SQL 服务器锁占用大约 100 字节的内存,7 GB 是大量内存,并试图找出谁在使用它。

我通过锁计数运行服务器仪表板报告最高事务,它说“当前系统上没有运行锁定事务。但是,锁内存仍然显示如上所述。数据库在夜间最忙。

sql-server-2008 sql-server memory sql-server-2008-r2 sql-server-2012

10
推荐指数
2
解决办法
5497
查看次数

SQL Server 2008 R2 安装客户端工具连接

在 SQL Server 2008 R2 安装过程中,我看到“客户端工具连接”和“客户端工具向后兼容性”安装选项的复选框。它说这些是客户端服务器通信的组件。谁能解释一下这些组件是什么?当您选择这些组件时,服务器上实际安装的是什么。

sql-server-2008-r2

9
推荐指数
1
解决办法
2万
查看次数

SQL Server 最小服务器内存

将 SQL 2008 R2 与 SP2 与具有 64 GB RAM 的服务器一起使用。考虑到 SQL Server 仅限于仅与数据库引擎相关的服务,我已将最大服务器内存设置为 58GB。我有一个关于设置最小服务器内存的问题

如果我将最小服务器内存设置为 48 GB 是否意味着

a) 如果 Windows 向 SQL 发送低内存通知——SQL 服务器将修剪其所有池并尝试将内存使用量保持到 48 GB 的内存?

b) 在 Windows 进行积极的工作集修整的情况下 - 是否会将 SQL 服务器的内存使用量保留为 48 GB,为 SQL 的内存使用量设置“下限”。

c) 对最小服务器内存有什么建议吗?

搜索网络——互联网上有大量关于最大服务器内存的信息,但我读到的地方很少(Brent Ozar 博客中的配置最佳实践)将最小服务器内存设置为服务器上可用 RAM 总量的 50%。

sql-server-2008 sql-server sql-server-2012

8
推荐指数
1
解决办法
2万
查看次数

DML 操作的 SQL Server 并行性

我知道 SQL Server 可以将并行性用于某些 DDL 操作,例如索引重建或某些 SELECT 语句,当查询成本超过并行性成本阈值时,很可能在数据仓库环境中。

从版本 8i 开始,ORACLE 提供并行 DML操作,如 INSERT、UPDATE 或 DELETE。

SQL Server 是否对 DML 操作使用并行性?

sql-server-2005 sql-server-2008 sql-server

6
推荐指数
1
解决办法
2433
查看次数

SQL Server 2012 资源调控器增强

在 SQL Server 2012 中,对通过使用资源调控器控制内存使用进行了哪些具体的增强。直到 SQL Server 2008 R2 资源调控器只能控制与查询内存授予相关的内存

我查看了SQL Server 2012 BOL,但它没有明确说明任何内容。

sql-server-2008 sql-server sql-server-2012

6
推荐指数
1
解决办法
1584
查看次数

SQL Server 工作区内存

工作区内存(缓冲池的一部分)是否仅限于哈希联接、排序等?

如果我有一个使用嵌套循环连接(没有排序或散列)的查询,它会不会使用工作区内存?

将在何处创建返回 100 行的简单查询的工作表?在 Tempdb..

sql-server-2008 sql-server

6
推荐指数
1
解决办法
866
查看次数