标签: sql-server

重建或重组索引时,主键是否会发生变化?

我有一个包含表的数据库,每个表都有作为主键列的自动增量 int 列。

当我对索引执行重建或重组操作时,这两个操作是否可能会更改此列的值?

如果索引是“聚集的”,这有关系吗?

我从 2008 年开始使用各种版本的 MS T-SQL。

index sql-server primary-key

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

为什么当我连接到服务器时 SSMS 不会记住我的表

每次通过 SSMS 工具连接到 SQL 服务器时,我都会遇到同样的问题。如果我一直在编写脚本并关闭我的笔记本电脑一段时间,当我回来并重新连接时,它无法识别我正在处理的数据库中的表。通常我必须右键单击表名并选择前 1000 行才能在缓存中记住它。这是一种解决方法,我知道我不需要做,因为我遗漏了一些东西或没有正确地做一些事情。

有小费吗?

sql-server ssms

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

按月和年分组的正确方法?

我需要按月(和年)分组,我在想:

GROUP BY CAST(YEAR(tDate) AS NVARCHAR(4)) + '-' + CAST(MONTH(tDate) AS NVARCHAR(2))
Run Code Online (Sandbox Code Playgroud)

但是我在网上找到了类似的东西:

GROUP BY YEAR(tDate), Month(tDate)
Run Code Online (Sandbox Code Playgroud)

两者是等价的吗?用第二种比较好?

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

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

NEWSEQUENTIALID 在许多表的数据库中是唯一的吗?

NEWSEQUENTIALID 在数据库中是唯一的吗?我们用 NEWSEQUENTIALID 在数据库中规划了许多表,同时插入并希望确保每个 guid 都是唯一的,无论它们是否在不同的表中。

常规 NEWID() 将保证数据库中的唯一性,并且有重复的机会是被小行星/闪电击中的机会,但是它们并不能缓解碎片问题。

这篇文章讨论了 Mac 地址,但是我想为上面特定的数据库指定问题。 /sf/ask/1988347511/

performance database-design sql-server sql-server-2016 performance-tuning

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

SQL Server Management Studio - 实际执行计划 - 实际行大小和实际数据大小

我正在查看 Microsoft SQL Server Management Studio v 17.9.1 中的实际执行计划,但我看不到很多与估计值进行比较的实际值。

例如,我们有一个连接器,其中包含以下数据:

在此处输入图片说明

我可以看到估计行和数据大小,但它们的实际大小在哪里?有没有办法查看这些信息?

实际 CPU、I/O、执行次数等的相同问题。

更新: MS SQL Server 2008 R2

sql-server ssms

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

SQL Server:删除行触发器

我有这 3 个表:

构造函数员工

  • EID (员工 ID)作为主键和其他键。

项目

  • PID 作为主键和其他键。

项目建设者员工

  • PIDEID作为其他表的外键。

每个ConstructorEmployee可以在几个Projects. 我需要创建一个触发器,如果项目已被删除,我需要删除所有ConstructorEmployee 该工作在这个项目上。我需要从ConstructorEmployee表中删除它们。

我正在研究 SQL Server 2017。

trigger sql-server sql-server-2017

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

查询速度优化

我有几个表,我试图将它们与以下查询结合起来。我正在使用以下表格:

  • LoanOrigination:这包含贷款特征,例如资产价值、贷款期限等。每笔贷款有一个独特的观察。该表在LOAN_IDSUB_SAMPLE和上建立索引COLLATERAL_TYPE
  • LoanPerformance:这包含了所有贷款的表现LoanOrigination。每一行是一个独特的MONTHLY_REPORTING_PERIODLOAN_ID组合,并且该表已被索引两个。
  • CollateralData:这包含基于COLLATERAL_TYPE. 这样做的目的是估计贷款对抵押品的当前价值。

下面查询的目的是组合这些表,以便每一行都包含贷款特征以及当月和下个月的拖欠状态。但是,查询速度非常慢。有什么办法可以加快速度吗?

with

COLLATERAL_VALUES as (
    select
        COLLATERAL_TYPE,
        dateadd( day, 1-day(AsOfDate), AsOfDate) as ASOFDATE,
        Value as INDEX
    from LoanData.CollateralData
),

SAMPLE_LOANS as (
    select
        a.*,
        b.INDEX as INDEX_T0
    from LoanData.LoanOrigination a
    join COLLATERAL_VALUES b on b.ASOFDATE = a.ORIG_DATE and b.COLLATERAL_TYPE = a.COLLATERAL_TYPE
    where SUB_SAMPLE = 0
),

LOAN_STATE as (
    select
        a.LOAN_ID,
        MONTHLY_REPORTING_PERIOD AS CUR_DATE,
        CURRENT_ACTUAL_UPB as CUR_UPB,
        LOAN_AGE, …
Run Code Online (Sandbox Code Playgroud)

performance sql-server optimization query-performance

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

如何使用 powershell 启用这些 Windows 防火墙规则?

我有几台服务器,我在 sql server 服务上看到一个蓝色的问号,如下图所示。

在此处输入图片说明

这是解决方案

启用这些 Windows 防火墙规则对我有用

Windows 管理规范 (WMI-In)

Windows 管理规范 (DCOM-In)

有没有办法通过powershell实现这一目标?

sql-server powershell windows-server connectivity sql-server-2014

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

关于sp_BlitzIndex的几个问题

当 sp_BlitzIndex 做索引建议时,我脑子里的问题如下:

是的,建议的索引在执行 select 语句时会带来很多速度优势。但是这些索引还有另一个成本,即删除、插入、更新查询

sp_BlitzIndex 脚本是否也考虑了删除、插入、更新成本?还是仅评估 select 语句会带来多少速度优势?

此外,我如何通过 sp_BlitzIndex 列出坏索引?他们是如何确定坏的?

非常感谢您的回答

sql-server sp-blitzindex sql-server-2017

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

防止用户更改 MS SQL Server 数据库中的某些列

我想阻止用户更改 MS SQL Server 数据库中的某些列。我无法将该列锁定为 READ ONLY,因为对该列进行了更改。让我尽可能解释清楚。我们的 ERP 允许我通过用户的安全选项卡阻止某些字段/列。听起来很棒。但是,如果一个人使用 ODBC 或 DSN 连接,他们将能够更改数据。例如,我不希望用户能够更改客户订单表中的成本或任何财务内容,但对他更正不正确的地址或运输信息没有任何问题。如果我将表锁定为只读,那么使用 ERP 也会阻止该列。我希望我在这里说得通。谢谢!

database-design sql-server locking

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