标签: sql-server

创建索引是否需要停机

我们有一张包含几百万行的生产表。我们运行了这个查询,它冻结了我们的数据库,

USE ExampleDatabase

GO
CREATE NONCLUSTERED INDEX IX_Table1_URL
ON [dbo].[Table1] ([URL])
GO

GO
CREATE NONCLUSTERED INDEX IX_Table1_LastModified
ON [dbo].[Table1] ([LastModified])
GO

GO
CREATE NONCLUSTERED INDEX IX_Table2_URL
ON [dbo].[Table2] ([URL])
GO

GO
CREATE NONCLUSTERED INDEX IX_Table2_LastModified2
ON [dbo].[Table2] ([LastModified2])
GO
Run Code Online (Sandbox Code Playgroud)

我是一名对索引知识非常有限的开发人员,我不知道从哪里开始,只是添加 Table1 和 Table2 都有数百万行。

sql-server sql-server-2012

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

SQL Server 中的粒度安全

考虑具有以下结构的数据库:

[dbo].[客户]、[dbo].[地址]和[dbo].[报告]

模式

[dbo] 和 [报告]

我希望能够做的是让主体(可以是用户或角色)能够仅在报告模式中管理视图(创建、更改、删​​除)。此外,此主体将需要对 dbo 架构中的所有表的 SELECT 权限(以支持在报告架构中创建视图)。我希望能够做的最后一件事是仅在 dbo 架构中为报告表授予 INSERT、UPDATE 和 DELETE 权限。

这是可能的吗?我还没有找到正确的权限组合。我可以使用用户、角色等的任意组合来实现这一点。

sql-server

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

索引优化导致数据库大小增加

索引优化后数据库大小从114增加到140Gb,这正常吗?

进程完成后服务器RAM使用率不减少,保持在62Gb/98%

sql-server ola-hallengren

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

如何通过查询在sql中的日期列中添加循环?

如果ID = 01234并且此 ID 在一个月内进行了 3 次交易,如下所示:

***DAY_no              Balance*** 
   1/1/2018              5000
   10/1/2018             10000
   15/1/2018             12000
Run Code Online (Sandbox Code Playgroud)

我想要这样的数据:

***DAY_no              Balance*** 
   1/1/2018              5000
   2/1/2018              5000
   3/1/2018              5000
   4/1/2018              5000
   5/1/2018              5000
   6/1/2018              5000
   7/1/2018              5000
   8/1/2018              5000
   9/1/2018              5000
   10/1/2018             10000
   11/1/2018             10000
   12/1/2018             10000
   13/1/2018             10000
   14/1/2018             10000
   15/1/2018             12000
   16/1/2018             12000
   17/1/2018             12000
   18/1/2018             12000
   19/1/2018             12000
   20/1/2018             12000
   21/1/2018             12000
   22/1/2018             12000
   23/1/2018             12000
   24/1/2018             12000
   25/1/2018             12000
   26/1/2018             12000
   27/1/2018             12000
   28/1/2018             12000
   29/1/2018             12000
   30/1/2018             12000 …
Run Code Online (Sandbox Code Playgroud)

performance sql-server subquery sql-server-2012 query-performance

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

Tempdb 在不同数据库之间拆分文件/文件组

将数据库放在一个服务器实例上的一个常见问题是它们都共享相同的 tempdb。是否可以为单独的数据库分配 tempdb 文件/和文件组。资源调控器允许这样做吗?

数据库 1,只能访问 tempdb 中的一个文件/文件组 1。

数据库 2,只能访问 tempdb 中的一个文件/文件组 2。

performance sql-server filegroups tempdb performance-tuning

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

如何在 32 位服务器上获取 Sql Server 2016?

我没有构建它,但我们有一个 32 位的 Windows Server 2008,带有 SQL Server 2008 和 4GB 的 RAM。

我需要将它升级到 SQL Server 2016,以便将日志传送到新服务器,这样我们就可以摆脱困境。

问题 - 看起来 SQL Server 2016 至少需要 Windows Server 2012,它只有 64 位。

问题:如何将数据迁移到 SQL 2016 服务器,停机时间小于 1 天?

有没有办法通过兼容性级别来解决它?

sql-server-2008 sql-server sql-server-2016

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

使用 OPENJSON 生成嵌套数组非常慢

我刚刚开始使用OPENJSONSQL Server 2016 SP1。

我有这句话:

select c.Serial as Parent,
    (Select co.Serial, agc.Position
      from AggregationChildren agc, Aggregation ag, Code co
      where agc.AggregationId = a.AggregationId 
      and co.CodeId = agc.AggregationChildrenId for json path) as children
    from Aggregation a, Code c
    where c.CodeId = a.AggregationId for json path
Run Code Online (Sandbox Code Playgroud)

要生成此 JSON:

select c.Serial as Parent,
    (Select co.Serial, agc.Position
      from AggregationChildren agc, Aggregation ag, Code co
      where agc.AggregationId = a.AggregationId 
      and co.CodeId = agc.AggregationChildrenId for json path) as children
    from Aggregation a, Code c …
Run Code Online (Sandbox Code Playgroud)

sql-server json

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

计算总树结构

我有一个包含 object_id、object_name、derived_from_object_id 的表

我需要查看哪些函数才能根据提供的 object_id 提供派生总数?

例子

1    object1    0  
2    object2    1  
3    object3    1  
4    object4    0  
5    object5    3  
6    object6    2  
7    object7    3  
8    object8    5  
Run Code Online (Sandbox Code Playgroud)

没有定义从对象或子对象派生的最大数量。因此,如果我想要 objectid 1 的总数,结果将为 7。

我想过编写一个存储过程,它只是为每个对象 id 返回一个计数,然后它会为每个有子对象的 id 调用自己。虽然我认为这会奏效,但我认为这完全是错误的方向。

sql-server

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

SQL Management Studio Intellisense - 隐藏全局变量

我不确定这是否可行,但是在编写查询以从表中进行选择时,当我使用 CTRL + 空格键调出智能感知下拉菜单时,它会为我提供所有变量的列表(全局变量和表中的变量)。

在此处输入图片说明

有什么办法可以让它只显示我从中选择的表中的变量?除非您已经知道该字段的名称,否则它基本上完全没用,那么智能感知下拉的重点是什么?

sql-server ssms intellisense

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

查看历史死锁信息

我的任务是调查应用程序的工作由于死锁而失败的问题。我知道使用跟踪来捕获死锁,但是由于这是 16 小时前发生的事情,我想知道是否可以查看导致死锁的原因?

谢谢

sql-server deadlock sql-server-2014

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