AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-9525

AngryHacker's questions

Martin Hope
AngryHacker
Asked: 2021-09-24 08:41:49 +0800 CST

有没有办法自定义 SQL Server 性能仪表板?

  • 0

SQL Server Management Studio 中的报告按一分钟显示系统 CPU 利用率。有没有办法指定间隔 - 也许是 10 秒?

在此处输入图像描述

sql-server ssms
  • 1 个回答
  • 81 Views
Martin Hope
AngryHacker
Asked: 2021-03-26 13:25:07 +0800 CST

在 SQL Server Management Studio 中启用工具箱窗口

  • 1

我假设 SSMS 中的工具箱窗口用于存储代码示例。所以我可以在编辑器中突出显示代码并将其拖到工具箱窗口中。

但是,如果我想使用代码示例并将其拖回编辑器(或双击它),我不能。工具箱中的所有条目都是灰色的。当我拖动一个条目时,它会将鼠标光标变成一个停止标志。

我需要做什么才能启用此功能?

在此处输入图像描述

通过在编辑器中突出显示一些代码,然后将其拖到 Samples 下的区域,我得到了这两个条目。首先,它显示为您拖动的实际文本。但是您可以右键单击,选择重命名并给它一个友好的名称。

附加信息:

  • 使用 SSMS v17.9.1 和 SQL Prompt 8 中安装的唯一加载项。

  • 唯一可行的解​​决方法是单击条目 Ctrl+C,然后将其粘贴到编辑器中。

  • 要实际显示维护计划任务,您必须右键单击并选择全部显示。

sql-server sql-server-2014
  • 1 个回答
  • 451 Views
Martin Hope
AngryHacker
Asked: 2021-02-09 11:47:18 +0800 CST

为什么内置的距离功能比我的自定义功能慢很多?

  • 0

我想找到两组坐标之间的距离。首先我使用内置函数:

declare @lat1 real = 33.1, @lon1 real =-117.1, @lat1 real = 39.6, @lon1 real =-98.7
declare @source geography = geography::Point(@lat1, @long1, 4326);
declare @target geography = geography::Point(@lat2, @long2, 4326);

select  @source.STDistance(@target)     

现在我使用手动计算来做同样的事情:

 -- Kilometers to Miles: 0.621371, Earth Radius: 6378.137
 select 0.621371 * 6378.137 * ACOS(ROUND(
    (SIN(PI() *  @lat2 /180) * SIN(PI() * @lat1/180))
    + (COS(PI() *  @lat2 /180) * COS(PI() * @lat1/180) * COS(PI() * @lon1/180 - PI() * @lon2 /180)), 12))

在我对 SQL Server 2014 的测试中,手动功能比内置功能快 4 倍左右。这是正常的还是我错过了一些基本的东西?

sql-server sql-server-2014
  • 1 个回答
  • 60 Views
Martin Hope
AngryHacker
Asked: 2019-08-30 14:25:01 +0800 CST

在 SQL Server 的 VM 上共享 CPU 是否正常?

  • 3

我们的 IT 在包含其他 VM 的大型 VMWare 盒子上将 SQL Server 设置为 VM。CPU 设置为共享。因此,任何可能需要多个 CPU 的查询所花费的时间都比我将其限制为单个 CPU 的时间长 30 倍。例子:

SELECT TOP 2000 lwa.Message INTO #foo
FROM dbo.LogWidgetsAPI lwa (NOLOCK)
ORDER BY lwa.TimeStamp

对比

SELECT TOP 2000 lwa.Message INTO #foo
FROM dbo.LogWidgetsAPI lwa (NOLOCK)
ORDER BY lwa.TimeStamp
OPTION (MAXDOP 1)  ------------- Force it to run on a single CPU

第一个示例使用并行性,大约需要 30 秒左右。第二个强制使用单个 CPU 并花费 20 毫秒。

注意:运行单 CPU 查询后,我返回运行多 CPU 查询,时间和计划是相同的 - 所以我认为问题与“冷缓存”与“热缓存”无关

所以我的理论是,因为第一个查询使用多个 CPU,它必须等到所有有问题的 CPU 都空闲,因此它只是等待。

所以我的问题。SQL Server VM 应该有专用 CPU 还是共享 CPU 是正常的?

这是使用并行的计划。这是强制使用单个 CPU的计划。

sql-server sql-server-2016
  • 2 个回答
  • 127 Views
Martin Hope
AngryHacker
Asked: 2019-08-21 13:25:59 +0800 CST

为什么选择 1000 行与 2000 行时执行计划大不相同?

  • 0

考虑下面的查询。唯一的区别是返回 1000 与 2000 行。

SELECT TOP 1000 lwa.Message INTO #foo
FROM dbo.LogWidgetsAPI lwa (NOLOCK)
ORDER BY lwa.TimeStamp

对比

SELECT TOP 2000 lwa.Message INTO #foo
FROM dbo.LogWidgetsAPI lwa (NOLOCK)
ORDER BY lwa.TimeStamp

但是,1000 行会在一秒钟内返回,而 2000 行的查询需要更长的时间。

第一个查询的查询计划相当简单:

在此处输入图像描述

但第二个查询使用并行化: 在此处输入图像描述

仅使用 1k 行会更强制并行化吗?

PS 该表包含超过 600 万条记录,并索引了 TimeStamp 列。

sql-server sql-server-2016
  • 1 个回答
  • 89 Views
Martin Hope
AngryHacker
Asked: 2016-11-01 12:16:18 +0800 CST

SSMS 2016 需要永远为索引显示上下文菜单

  • 5
  1. 转到对象资源管理器中的随机表
  2. 将其扩展到索引
  3. 右键单击索引 - 大约需要10 秒才能出现

如果我尝试DROP & CREATE INDEX从上下文菜单中创建脚本,则需要类似的时间。

我查看了 Profiler 跟踪,它有大约 4 页的大量重复查询。如果我查看任务管理器的性能/以太网选项卡,我发现它以 800kb-1mb 的速率提供信息,并以大约 200kb 左右的速度发送信息。

这是一个错误吗?特征?我错过了一些简单的设置吗?

  • SSMS 版本:13.0.15900.1。
  • 将 SSMS 更新到 13.0.16000.28,但没有任何效果。
  • SQL Server 版本:2016 年累积更新 2。
  • 我安装了 SQL Prompt 7。卸载了它,但没有任何改变。
  • SELECT COUNT(*) FROM sys.indexes;1979 年回归。
  • SELECT COUNT(*) FROM sys.partitions;1973 年回归。

我有自己的盒子,所以没有争议。另外,这个盒子是我用过的最快、规格最好的盒子。除了这个特定的操作之外,一切都很好。

sql-server ssms
  • 4 个回答
  • 4345 Views
Martin Hope
AngryHacker
Asked: 2016-09-07 10:40:07 +0800 CST

sp_who2 中的 SPID 有很多行是什么意思

  • 7

我sp_who2 active在盒子上运行,每个 SPID 获得多行。例如,见下文。这是否意味着 SQL Server 已将查询分解为 23 个并行子查询?如果是这样,为什么忽略 MaxDegreeOfParallelism 设置 8?或者这是别的什么?

在此处输入图像描述

sql-server sql-server-2016
  • 1 个回答
  • 2503 Views
Martin Hope
AngryHacker
Asked: 2014-01-29 13:23:51 +0800 CST

为什么共享内存连接上有 ASYNC_NETWORK_IO 等待类型?

  • 4

我在 SQL Server 框本地有一个应用程序(Windows 服务)。它在返回大量数据的 SQL Server 框上调用存储过程,从而导致 ASYNC_NETWORK_IO 等待。

来自的数据库连接是共享内存类型(我仔细检查了完整性)。为什么共享内存连接上会有 ASYNC_NETWORK_IO 等待类型?

我认为 ASYNC_NETWORK_IO 与网络延迟有关?

sql-server sql-server-2005
  • 1 个回答
  • 824 Views
Martin Hope
AngryHacker
Asked: 2014-01-24 10:30:36 +0800 CST

ASYNC_NETWORK_IO 等待类型有什么可担心的吗?

  • 16

在查看需要很长时间执行的存储过程列表时,其中一个会导致最多的等待。但是,大部分等待(81%)是 ASYNC_NETWORK_IO,我知道原因:存储过程传输大约 400 MB 的信息。

在文档中,它指出 ASYNC_NETWORK_IO 的原因是客户端无法跟上数据洪流,这可能是真的。我不确定如何让客户端跟上,因为它所做的只是通过 ADO.NET 调用存储过程,然后只处理数据集。

因此,鉴于此信息,我是否应该担心此过程的 ASYNC_NETWORK_IO 等待类型?它实际上对服务器性能有影响吗?

附加信息:

  • 我使用的是 SQL Server 2005 的服务包 2。
  • 客户端应用程序与 SQL Server 在同一个盒子上(我知道,我知道......但我对此无能为力)。
sql-server performance
  • 1 个回答
  • 22368 Views
Martin Hope
AngryHacker
Asked: 2014-01-23 10:43:48 +0800 CST

如何提高过程缓存命中率?

  • 11

据我所知,低于 95% 的过程缓存命中率是一个问题。在我的盒子里,数值在 85% 到 95% 之间徘徊。

我该如何解决这个问题?服务器似乎有足够的内存,所以这应该不是问题。还能是什么?

sql-server performance
  • 1 个回答
  • 10030 Views
Martin Hope
AngryHacker
Asked: 2012-12-18 11:09:24 +0800 CST

为什么 WAITFOR (RECEIVE FROM QUEUE) 在监视器中显示不正确?

  • 5

我在我的应用程序中启动了以下命令:

WAITFOR (RECEIVE CONVERT(int, message_body) AS Message FROM MyQueue)

当我运行“sp_who2 active”时,我得到 Status=SUSPENDED 和 Command=DELETE

在此处输入图像描述

注意:从 StackOverflow 移出。

sql-server sql-server-2005
  • 1 个回答
  • 2200 Views
Martin Hope
AngryHacker
Asked: 2012-12-18 11:04:17 +0800 CST

触发无限期 WAITFOR 会增加日志文件的大小吗?

  • 17

在我的应用程序的最后一个版本中,我添加了一个命令,告诉它在有内容到达 Service Broker 队列时等待:

WAITFOR (RECEIVE CONVERT(int, message_body) AS Message FROM MyQueue)

DBA 告诉我,自添加以来,日志大小已经达到顶峰。这是正确的吗?还是我应该去别处看看?

sql-server sql-server-2005
  • 2 个回答
  • 1038 Views
Martin Hope
AngryHacker
Asked: 2012-09-15 14:32:36 +0800 CST

等待服务代理消息的性能影响

  • 7

我有一个情况,多个客户端应用程序通过 Service Broker 发送消息(利用存储的过程)。这些消息由另一个客户端应用程序获取,然后进行处理。获取消息的方式是应用发出以下 SQL 语句(伪代码):

LOOP {
    WAITFOR (RECEIVE CONVERT(int, message_body) AS Message FROM SB_ReceiveQ)
    ProcessMessage
}

所以基本上代码只是阻塞,直到收到消息。这一切都很好。

我的问题是关于发出WAITFOR (RECEIVE...命令的含义,该命令基本上永远挂在某些基于服务代理的资源上。我应该知道与此模式相关的任何性能问题吗?

作为参考,这是 SQL Server 2005。

sql-server sql-server-2005
  • 3 个回答
  • 3422 Views
Martin Hope
AngryHacker
Asked: 2012-07-17 09:18:25 +0800 CST

快速查看为 SQL Server 分配了多少 RAM?

  • 15

使用 SQL Server 2005,您可以查看任务管理器,并且至少可以粗略地查看分配给 SQL Server 的内存量。

在 SQL Server 2008 中,工作集或提交大小从未真正超过 500 MB,即使 SQLServer:Memory Manager/Total Server Memory (KB) 性能计数器状态为 16,732,760。

是否有设置在任务管理器中实际显示服务器内存?或者是因为他们改变了 SQL Server 中内存的使用方式

sql-server sql-server-2008
  • 2 个回答
  • 77130 Views
Martin Hope
AngryHacker
Asked: 2012-07-11 13:33:27 +0800 CST

为什么我会在分区表查询上进行表扫描?

  • 3

我在(int)Inventory_Break上分区了表。IR_ID我还在表上创建了一个非聚集索引IR_ID。

当我运行以下命令时:

SELECT  *
FROM    dbo.INVENTORY_BREAK
WHERE   IR_ID IN ( 100, 101, 102 )

我得到以下执行计划:

在此处输入图像描述

它声明了表扫描 (HEAP)。不太清楚它在分区表的上下文中意味着什么。我也没有看到它使用任何类型的索引。然而,它必须,因为查询返回相当快(例如,表有 600 万行)。

所以,我的问题是:

  1. 表扫描 (HEAP) 对分区表意味着什么?
  2. 它是否确实使用了索引,也许是在幕后?
  3. 我需要做些什么来提高效率吗?
sql-server sql-server-2008
  • 1 个回答
  • 2052 Views
Martin Hope
AngryHacker
Asked: 2012-07-10 13:01:32 +0800 CST

分区键是否也必须是主键的一部分?

  • 26

我正在根据不是主键的列对表进行分区?我今天阅读了一些关于分区列是否必须是主键的一部分的相互矛盾的信息。我的直觉说不,但我不是 100% 确定。那么问题...

  1. 分区列必须是主列的一部分吗?是推荐一种方式还是另一种方式?
  2. 我是否必须为分区键创建索引,还是 DBMS 自己自动创建?
sql-server sql-server-2008
  • 3 个回答
  • 20575 Views
Martin Hope
AngryHacker
Asked: 2012-07-10 09:35:53 +0800 CST

分区机制

  • 5

想象一下以下假设的数据库结构。基本上它是一个自上而下的结构(国家有订单,订单有 OrderLines,OrderLine 有 ShipLines,等等)。

在此处输入图像描述

我想按 CountryID 对我的 SQL Server 2008 数据库进行分区。如您所见,CountryID 仅在前 2 个表中(例如 amCountries 和 amOrders)。鉴于(据我所知)分区是在表级别完成的,我是否需要将 CountryID 添加到其余表才能对它们进行分区?或者在 SQL Server 中是否有某种类型的级联可以让我跳过将 CountryID 添加到所有内容?

sql-server sql-server-2008
  • 2 个回答
  • 182 Views
Martin Hope
AngryHacker
Asked: 2012-06-26 09:32:34 +0800 CST

是否可以将 SQL Server 2005 Standard 就地升级到 SQL 2012 Enterprise?

  • 2

目前,我有一个 SQL 2005 Standard 框。我想将其就地升级到 SQL 2012 Enterprise。当我说到位时,我的意思是类似于 Office 2010 的安装,例如,它删除了旧的 (Office 2007) 版本,将自身绑定到曾经由其前身持有的扩展,并保留所有设置。

这可能吗?

如果不是,应该是什么程序?到目前为止,我得到了这个。

  1. 备份数据库
  2. 记下所有设置。
  3. 卸载 SQL 2005。
  4. 安装 SQL 2012 企业版。
  5. 恢复设置
  6. 恢复数据库。
sql-server sql-server-2005
  • 1 个回答
  • 1757 Views
Martin Hope
AngryHacker
Asked: 2012-06-22 16:20:17 +0800 CST

如何将所有非唯一和非聚集索引移动到不同的文件组?

  • 0

我想将所有索引移动到单独的硬盘驱动器。为此,我创建了一个新文件组,然后向其中添加了一个新文件(例如alter database foo add file(...) to FileGroup)。

现在我想将所有索引移动到这个新文件组。事实证明,我不能用来ALTER INDEX 在文件组之间移动索引。而且我也不能移动 PK 或唯一索引,以免我想移动表本身(我没有),所以这些都出来了。所以,至少,我想移动其余的索引。

我正在努力寻找一种将所有符合条件的索引从一个文件组移动到另一个文件组的方法。有没有合理的自动化方式来做到这一点?

sql-server sql-server-2005
  • 2 个回答
  • 2219 Views
Martin Hope
AngryHacker
Asked: 2012-06-22 15:10:29 +0800 CST

我的设置的硬盘驱动器配置

  • 1

我有一个相当大的事务数据库 (100GB),有很多用户。数据库访问仅通过大量使用临时表、表变量、游标和其他有趣事物的存储过程。

我正在一个新盒子上试用它以提高性能。新盒子有 5 个独立的物理硬盘。我正在努力想出一个最佳设置(主要是无知,我通常是 ac# dev)。到目前为止,我得到以下信息:

Drive C: OS, SQL install, TempDB log
Drive D: Database data
Drive E: Database log
Drive F: TempDB data
Drive G: Databases indexes

我走的路对吗?有什么明显的错误吗?

sql-server sql-server-2005
  • 1 个回答
  • 223 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve