正在使用我的数据库中SQL SERVER 2012有我的Auto Update Stats ON。
从下面的链接我了解到,自动更新统计信息将针对SQRT(1000 * Table rows)表行中的每个更改触发。
https://blogs.msdn.microsoft.com/srgolla/2012/09/04/sql-server-statistics-explained/
我创建了一个包含 1000 条记录的表
SELECT TOP 500 Row_number()OVER (ORDER BY (SELECT NULL)) rn,
name
INTO stst
FROM sys.objects
Run Code Online (Sandbox Code Playgroud)
创建统计信息
CREATE STATISTICS rn
ON stst (rn)
CREATE STATISTICS name
ON stst (name)
Run Code Online (Sandbox Code Playgroud)
检查创建的统计信息
DBCC show_statistics('stst', rn) -- Rows 500
DBCC show_statistics('stst', name) -- Rows 500
Run Code Online (Sandbox Code Playgroud)
按照公式
select SQRT(1000 * 500) -- 707.106781186548
Run Code Online (Sandbox Code Playgroud)
因此,如果我707.106781186548在表中添加/修改记录,则应触发自动更新统计信息
1000向我的表中添加更多记录,这应该足以触发auto update stats
INSERT INTO stst(rn,name)
SELECT TOP …Run Code Online (Sandbox Code Playgroud) 我想将我的 SQL Server 2008 企业版升级到 SQL Server 2016 标准版;然而,一个数据库在多个文件组上使用表分区(用于大型日志表,每天是一个分区)
我在SQL Server 2016 的版本和支持的功能中的“RDBMS 可扩展性和性能”一节中看到,它说标准版支持表和索引分区,但不支持分区表并行。
我不确定我是否完全理解这样做的后果。
就我而言,这究竟意味着什么,它将如何影响数据库的性能?
我有一个场景,我将数据库从一台服务器恢复到另一台服务器。在源服务器上,数据库主密钥 (DMK) 使用密码和服务主密钥 (SMK) 进行加密。当我去将它恢复到新服务器时,行中sys.key_encryptions仍然说它是由 SMK 加密的。但事实并非如此,因为两台服务器之间的 SMK 不匹配。是否有任何编程方式来验证 DMK 确实使用此服务器的SMK 进行了加密?
我必须在具有许多(50 多个)表的数据库中实施审计。我希望将用户名和用户将记录更改为所有表的列的时间。但是,有些表已经有了这些列,所以我不需要将这些列添加到所有表中。假设列名是DateTime_Tableand UserName_Table,如果列不存在,我如何向数据库中的所有表添加DateTime_Table column和UserName_Table列?
我看到了 Postgres 的这个循环,但我需要 SQL Server 的帮助。
DBCC CHECKDB 返回:
无法为数据库 'tempdb' 中的对象 'dbo.SORT 临时运行存储:140737951236096' 分配空间,因为 'PRIMARY' 文件组已满。
通过删除不需要的文件、删除文件组中的对象、向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。
消息 9002,级别 17,状态 4,第 1 行
Kenneth Fisher 发表了一篇关于如何确定我的 SSIS 包是什么 SQL 版本的博客文章?2015 年 4 月。
它有一个表,其中列出了哪些 SQL 版本映射到PackageFormatVersion在 XML 元数据中找到的 SSIS 包。这在查看 1 个单独的包时很有用。
我有一个包含大约 100 个 SSIS.DTSX包的文件夹,我需要知道它们都是哪个 SQL 版本。
如何批量确定文件夹(文件系统)中PackageFormatVersion多个.DTSX包的(即 SQL 版本)是什么?
最终目标是确定哪个是正确的 TFS 版本来获取和实施以将这些包放入,因为当前不存在源代码控制系统。Kenneth 提供的表将帮助我回答这个问题,但首先我需要确认包 SQL 版本是什么。
假设我没有安装 BIDS 或 SSDT。
假设所需的输出是这样的,其中管道指定了一个新列:
PackageFilename | PackageFormatVersion
--------------------------------------
Package1.dtsx | 3
Package2.dtsx | 4
Run Code Online (Sandbox Code Playgroud)
欢迎使用 PowerShell、TSQL、可以抓取目录结构的 3rd 方工具或其他工具。
我试图从表中查询 0 到 65,000 行。
服务器使用的是Microsoft SQL Server 2014,我无法更改服务器上的硬件。
架构
[Id] (PK) INT
[varchar1] VARCHAR(4) Normal Cardinality
[varchar2] VARCHAR(250) Normal Cardinality
[varchar3] VARCHAR(250) Normal Cardinality
[varchar4] VARCHAR(100) Normal Cardinality
[date1] DATETIME High Cardinality
[varchar5] VARCHAR(100) Low Cardinality
[varchar6] VARCHAR(1000) Normal Cardinality
[varchar7] VARCHAR(100) Normal Cardinality
[varchar8] VARCHAR(20) Normal Cardinality
[varchar9] VARCHAR(100) High Cardinality
[xml1] XML Low Cardinality
Run Code Online (Sandbox Code Playgroud)
询问
以下查询是存储过程的一部分(其余部分无关紧要,因为它对存储过程的性能影响不大)。列名称已替换为列类型和编号:
SELECT [varchar1]
, [varchar4]
, [date1]
, [varchar5]
, [varchar6]
, [varchar7]
, [varchar8]
, [varchar9]
, [xml1]
FROM [database].[dbo].[table] WITH …Run Code Online (Sandbox Code Playgroud) 是否有任何脚本可以像活动监视器一样获取输出?
或者当活动监视器显示在屏幕上时,我可以使用哪些 DMV 来获取输出?
它应该能够显示存储过程名称以及当前正在运行的存储过程中的语句以及与块相关的信息。
我有一个在 SQL-Server 2012 DBMS 上运行的数据库。考虑到运行 SQL Server 的服务器不是网络域的一部分。当我执行这个 sql 命令时
ALTER DATABASE myDatabase SET TRUSTWORTHY ON;
Run Code Online (Sandbox Code Playgroud)
服务代理队列(早期设置和工作)接收消息,但与队列关联的活动存储过程没有启动。消息继续流入队列,但没有其他任何事情发生。在 SQL SERVER 日志中,我发现了这条消息
在队列“proofSCHEMA.myQueue”上运行的激活过程“proofSchema.mySP”输出以下内容:“主数据库中记录的数据库所有者 SID 与数据库“myDatabase”中记录的数据库所有者 SID 不同。您应该通过使用 ALTER AUTHORIZATION 语句重置数据库“myDatabase”的所有者来纠正这种情况。
如果我在网络域内的机器上运行相同的配置,则一切正常。
我不明白发生了什么以及为什么值得信赖的使用服务代理队列。
PostgreSQL 支持DOMAIN规范,来自 SQL 2011 工作草案规范,
域是命名的用户定义对象,可以在某些可以指定数据类型的地方将其指定为数据类型的替代。域由数据类型、可能是默认选项和零个或多个(域)约束组成。
这使我们能够做一些非常酷的事情,例如通过不区分大小写的文本类型为电子邮件实现HTML5 规范的域。它确保所有访问数据库的客户端都对插入的数据进行完整性检查。
CREATE DOMAIN email AS citext
CHECK ( value ~ '^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$' );
Run Code Online (Sandbox Code Playgroud)
SQL Server 是否支持触发器系统之外的任何此类功能?
sql-server ×10
t-sql ×2
audit ×1
datatypes ×1
dbcc-checkdb ×1
domain ×1
encryption ×1
partitioning ×1
powershell ×1
security ×1
sql-clr ×1
sql-standard ×1
ssis ×1
statistics ×1
tempdb ×1
xml ×1