我尝试了多种方法将Debug按钮添加到我的 SSMS,但没有成功。
有没有办法将Debug按钮添加到 SSMS v18?
所有这些都有效:
CREATE DATABASE [¯\_(?)_/¯];
GO
USE [¯\_(?)_/¯];
GO
CREATE SCHEMA [¯\_(?)_/¯];
GO
CREATE TABLE [¯\_(?)_/¯].[¯\_(?)_/¯]([¯\_(?)_/¯] NVARCHAR(20));
GO
CREATE UNIQUE CLUSTERED INDEX [¯\_(?)_/¯] ON [¯\_(?)_/¯].[¯\_(?)_/¯]([¯\_(?)_/¯]);
GO
INSERT INTO [¯\_(?)_/¯].[¯\_(?)_/¯]([¯\_(?)_/¯]) VALUES (N'[¯\_(?)_/¯]');
GO
CREATE VIEW [¯\_(?)_/¯].[vw_¯\_(?)_/¯] AS SELECT [¯\_(?)_/¯] FROM [¯\_(?)_/¯].[¯\_(?)_/¯];
GO
CREATE PROC [¯\_(?)_/¯].[sp_¯\_(?)_/¯] @Shrug NVARCHAR(20) AS SELECT [¯\_(?)_/¯] FROM [¯\_(?)_/¯].[vw_¯\_(?)_/¯] WHERE [¯\_(?)_/¯] = @Shrug;
GO
EXEC [¯\_(?)_/¯].[¯\_(?)_/¯].[sp_¯\_(?)_/¯] @Shrug = N'[¯\_(?)_/¯]';
GO
Run Code Online (Sandbox Code Playgroud)
但是您可能会看到我的意思:我不想要 @Shrug,我想要@¯\_(?)_/¯.
这些都不适用于 2008-2017 的任何版本:
CREATE PROC [¯\_(?)_/¯].[sp_¯\_(?)_/¯] @[¯\_(?)_/¯] NVARCHAR(20) AS SELECT [¯\_(?)_/¯] FROM [¯\_(?)_/¯].[vw_¯\_(?)_/¯] WHERE [¯\_(?)_/¯] …Run Code Online (Sandbox Code Playgroud) SQL Server 2017 有几个新的存储过程:
以及 sys.messages 中的新条目:
我设置了一个 Always On Availability Group,我想确保我的用户在他们的连接字符串中使用 ApplicationIntent=ReadOnly。
从 SQL Server 通过 DMV(或扩展事件或其他),我能否判断用户是否在其连接字符串中使用 ApplicationIntent=ReadOnly 进行连接?
请不要回答如何防止连接 - 这不是这个问题的内容。我不能简单地停止连接,因为我们现有的应用程序在没有正确字符串的情况下进行连接,我需要知道它们是哪些,以便我可以与开发人员和用户合作,随着时间的推移逐渐修复它。
假设用户有多个应用程序。例如,Bob 与 SQL Server Management Studio 和 Excel 连接。他需要更新时使用 SSMS,需要读取时使用 Excel。我需要确保他在与 Excel 连接时使用 ApplicationIntent=ReadOnly。(这不是确切的场景,但足以说明。)
SQL Server 2019 CTP 2.3 向 sys.databases 添加了一些新列,包括 is_result_set_caching_on:
SQL Server 2019 的新增功能和ALTER DATABASE 页面中尚未记录。
我尝试使用与加速数据库恢复相同的语法只是为了笑:
ALTER DATABASE StackOverflow2013 SET RESULT_SET_CACHING ON;
Run Code Online (Sandbox Code Playgroud)
但没有运气:
Msg 5058, Level 16, State 12, Line 8
Option 'RESULT_SET_CACHING' cannot be set in database 'StackOverflow2013'.
Run Code Online (Sandbox Code Playgroud) 我在 AWS i3.16xlarge 上运行 SQL Server 2022 RC1 设置,具有 2 个插槽、2 个 NUMA 节点、每个节点 32 个逻辑处理器、总共 64 个逻辑处理器。
安装程序推荐 MAXDOP 8:
但是,如果您单击该链接来配置 MAXDOP,建议会显示:
根据那篇知识库文章,MAXDOP 应该是 16,而不是 8。当然,从技术上讲,8 小于 16 - 但 2、4 或 15 也是如此。8 从哪里来?
SQL Server 安装完成且服务启动后,日志显示 SQL Server 自动实施具有 4 个节点的 Soft-NUMA,每个节点有 16 个逻辑处理器:
同样,这表明 MAXDOP 应为 16。
这是一个错误,还是我错过了一些明显的事情?是否还有另一个不成文的规则,设置将在 MAXDOP 8 处停止?
我想创建一个登录,该登录被拒绝写入任何数据库的能力 - 不仅仅是今天存在的数据库,还有任何新创建的数据库或从其他服务器恢复的数据库。
我不能使用仅限数据库的角色(甚至不能在模型中使用),因为这些角色不会对新恢复的数据库生效。
(商业目的:我正在写一篇关于人们如何为自己设置低权限的新登录的博客文章,并且他们可以确保他们在复制/粘贴代码时不会意外地有“哎呀”时刻或者在没有 where 子句的情况下运行它。)
我从 Brent Ozar 的网站下载了 SQL Server First Aid Kit。当我以Azure 数据库服务器级别管理员身份登录时,当我尝试通过 Microsoft Sql Server Management Studio 针对我的主数据库运行sp_BlitzIndex脚本时,出现以下错误:
消息 262,级别 14,状态 18,过程 sp_BlitzIndex,第 18 行 CREATE PROCEDURE 权限在数据库“master”中被拒绝。
我在要测试的数据库实例上成功创建了该过程。当我执行该程序时,我收到一条错误消息:
消息 50000,级别 16,状态 1,第 1265 行无效的对象名称“mydatabase.sys.partitions”。
接下来我尝试聪明一点,直接对master数据库运行存储过程代码,而不创建存储过程,得到以下错误:
此版本的 SQL Server 不支持消息 50000,级别 15,状态 1,第 1267 行引用“mydatabase.sys.indexes”中的数据库和/或服务器名称。
我没有足够的信心开始玩弄约 2700 行索引启发式逻辑的内部工作原理。是否有一种快速、简单的方法可以让这个存储过程在 Azure SQL 数据库上很好地工作,或者我应该在别处寻找索引分析工具/存储过程?
t-sql azure-sql-database azure-sql-database-v11 sp-blitzindex
在 SQL Server 中,Perfmon 计数器“工作负载组统计:次优计划/秒”衡量什么?
它是资源调控器计数器之一,因此它是在工作负载组(无论是否配置 RG 都具有)进行测量的。
我不是在问什么是好的计划或坏的计划,而是具体的对策是什么,你去哪里找到准确的相应计划?例如,我在扩展事件中找不到任何与触发“次优计划/秒”计数器的查询相匹配的内容。
在 Amazon RDS SQL Server(任何版本/版本)中,创建一个临时表并更新其统计信息。这工作正常:
IF OBJECT_ID('tempdb..#t') IS NOT NULL
DROP TABLE #t;
GO
CREATE TABLE #t (id INT NOT NULL);
GO
UPDATE STATISTICS #t
GO
Run Code Online (Sandbox Code Playgroud)
但是尝试在统计信息上指定行数:
UPDATE STATISTICS #t
WITH ROWCOUNT = 100000000;
GO
Run Code Online (Sandbox Code Playgroud)
你会得到一个错误:
消息 1088,级别 16,状态 12,第 1 行 找不到对象“#t”,因为它不存在或您没有权限。
STATS_STREAM、ROWCOUNT 和 PAGECOUNT 选项已记录在案,但未得到官方支持。AWS RDS SQL Server 是否有解决方法以便它们工作?
sql-server ×9
t-sql ×2
amazon-rds ×1
maxdop ×1
numa ×1
parameter ×1
security ×1
ssms ×1
statistics ×1
unicode ×1