Questions tagged «sql-server»

所有版本的Microsoft SQL Server(非MySQL)。还请添加特定于版本的标记,例如sql-server-2016,因为它通常与问题相关。

3
我可以在执行计划窗格中让SSMS向我显示实际查询费用吗?
我正在解决SQL Server中多语句存储过程的性能问题。我想知道应该在哪一部分上花费时间。 我从如何阅读查询费用中了解到,它始终是百分比吗?即使SSMS被告知包括实际执行计划,“查询成本(相对于批次)”数字仍基于成本估算,这可能与实际情况相去甚远 从测量查询性能中可以了解到:“执行计划查询成本” vs“花费时间”,我可以用SET STATISTICS TIME语句围绕存储过程的调用,然后在Messages窗格中获得如下列表: SQL Server parse and compile time: CPU time = 0 ms, elapsed time = 1 ms. SQL Server Execution Times: CPU time = 0 ms, elapsed time = 0 ms. [etc] SQL Server Execution Times: CPU time = 187 ms, elapsed time = …

3
where子句中的列顺序应该与索引顺序相同吗?
我正在阅读use-the-index-luke.com,其中详细说明了索引的工作方式。该人员再次重申的一件事是,索引的顺序非常重要,为了使查询快速,where子句列应与索引中的列相同。今天,我只是证实了这一理论,并在SQL Server 2008上创建了一个表(id int,名称nvarchar(100))。我在其中插入了约5000行并创建了一个索引 create index abc on test (name, id ) 并触发了查询 select ID, name from test where ID = 10 and name = '10' 我原本希望在查询计划中进行全表扫描,然后再进行选择,但令我惊讶的是,计划的输出是选择所跟随的索引扫描。 因此,我的问题是Where子句中的列顺序很重要还是SQL Server根据索引定义重新排列了它们? 谢谢 !!


2
dm_exec_query_stats中的什么单位是“读”和“写”
MSDN将dm_exec_query_stats中的各种逻辑/物理读和写列描述为: 上一次执行计划时执行的物理读取数。 这些列都是64位整数(bigint),因此,显然更大的数字表示更多的读取/写入。 但是此列的单位是什么?数据库页面?千字节?只是一个任意数字? 示例:在我的数据库中进行相当昂贵的查询dm_exec_query_stats.total_logical_reads = 40412。 40412是什么?
8 sql-server  dmv 

2
SQL Server:事务复制计算列
我是事务复制订阅的订阅者。我无法控制发布者。 我已阅读以下有关对发布数据库进行架构更改的文章: 在发布数据库上进行架构更改 但是,我正在尝试更改订阅端的架构(如果可能)。我想知道事务复制是否支持将持久性计算列添加到订户表。 与为需要计算值的每个表添加新视图相比,我更喜欢此解决方案。

2
SQL Server 2008:登录名来自不受信任的域,不能与Windows身份验证一起使用
这里的问题不同于1和2 当尝试连接到网络中另一个系统上的SQL Server数据库时,两者都在工作组中,当尝试使用带有Windows身份验证的SQL Server Management Studio连接到SQL Server 2008实例时,我就连接了。 但是当尝试从我的应用程序连接时,出现以下错误 (登录失败。登录名来自不受信任的域,不能与Windows身份验证一起使用。)Native = 18452)。 如果SQL Server Management Studio可以连接,我的应用程序要连接需要什么?


2
非聚集索引-键和非键
我只想确保我在这些概念上走的正确,所以任何反馈将不胜感激。 这是我根据刚刚经过优化的查询通过反复试验并阅读MSDN文档而得出的理论。 查询 DECLARE @pic_id int SET pic_id = 1 SELECT ROW_NUMBER() OVER (ORDER BY pic_date desc) AS row_num, * FROM tbl_pics WHERE deleted = 0 AND map_id = 1 AND (hidden = 0 OR pic_id = @pic_id) 索引 CREATE NONCLUSTERED INDEX [IX_tbl_pics] ON [dbo].[tbl_pics] ( [map_id] ASC, [deleted] ASC, …


1
sql server中的持续时间测量实际测量什么?
进行探查器跟踪时,查询持续时间究竟能测量什么? 我有一个执行数据访问(SELECT)的存储过程,平均大约需要30秒才能将结果返回给应用程序。但是当我对其进行跟踪时,我得到的平均持续时间约为8秒,最大持续时间为12秒,平均CPU时间为5.5秒。 是什么导致返回结果集花费更长的时间呢?我没有累积大量的NETWORKIO等待。结果集仅包含约270行的简单文本数据,总计约50列。

2
SQL Server 2008 FileStream的最大行数
我们使用文件流中的Microsoft SQL Server 2008(SP2) - 10.0.4000.0(X64)和Windows Server 2008存储数百万文件。由于有数百万个文件,所有文件都被分组为100个文件组,并依次一个接一个地插入另一个文件组。现在,每个文件组中大约有1.5万个文件,预计很快会增长到2万个文件。所以我们想知道一个文件组必须具有最大行数限制才能达到最佳性能,或者在操作系统侧是否存在最大行数限制以达到最佳性能,因为我们要在单个文件夹中存储或存储约20K个文件? 对正确资源的任何建议也将非常有帮助。 我有一个指向msdn博客的链接,其中指出 4.检查FILESTREAM目录容器是否单独包含不超过300,000个文件,因为NTFS性能下降可能是一个问题,尤其是在启用8.3文件名生成时。 Msdn博客链接 谢谢。


3
过滤按行版本排序的数据
我有一个具有以下结构的SQL数据表: CREATE TABLE Data( Id uniqueidentifier NOT NULL, Date datetime NOT NULL, Value decimal(20, 10) NULL, RV timestamp NOT NULL, CONSTRAINT PK_Data PRIMARY KEY CLUSTERED (Id, Date) ) 不同的Id的数量在3000到50000之间。 表的大小变化到十亿行以上。 一个ID最多可以覆盖表格的5%至几行。 此表上最常执行的查询是: SELECT Id, Date, Value, RV FROM Data WHERE Id = @Id AND Date Between @StartDate AND @StopDate 我现在必须在ID的一个子集上实现增量数据检索,包括更新。 …



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.