小编Pau*_*ite的帖子

停止 SQL Server 服务而不是分离数据库

我想复制我的 SQL Server 数据库的事务和日志文件,并将其附加到另一台机器上的另一个 SQL Server。

除了分离数据库,我可以停止SQLSERVER服务并复制文件,还是仍然需要分离和附加数据库?

我可以通过停止服务来复制文件,但我想确保它不会导致任何问题。

我使用这种方法是因为我似乎无法使用备份/恢复

恢复

sql-server migration

-3
推荐指数
1
解决办法
1741
查看次数

减少 SQL Server 数据库的大小

如何减少我的 SQL Server 2008 数据库大小?

由于 db 体积增加,我的应用程序很慢。

sql-server-2008 sql-server database-size

-3
推荐指数
1
解决办法
642
查看次数

使用 *BOTH* 堆和聚集索引修复 SQL 表

不知何故,我们有一个 SQL Server 表,表上既有HEAP 索引,也有 CLUSTERED 索引。有没有办法来解决这个问题?例如,通过对象 ID 删除 HEAP 索引?

如果我们删除聚集索引,它将创建第二个 HEAP,当重新创建聚集索引时,它将被删除。这个僵尸 HEAP 索引将保留。

在此处输入图片说明

sql-server clustered-index heap sql-server-2014

-3
推荐指数
1
解决办法
461
查看次数

在 WHERE 子句的 CASE 表达式中使用 IS NULL

我有一个WHERE要在其中使用CASE表达式的子句。但是,我的CASE表达式需要检查字段是否为IS NULL.

如果@UserRole变量值 = 'Analyst',则SupervisorApprovedBy列值必须为NULL. 否则,我是说返回所有数据,即SupervisorApprovedBy = SupervisorApprovedBy.

我需要更改以下内容吗?

WHERE SupervisorApprovedBy = 
CASE 
    WHEN @UserRole = 'Analyst' THEN NULL
    ELSE SupervisorApprovedBy
END
Run Code Online (Sandbox Code Playgroud)

我不能使用=for NULL。经测试无效。

我希望返回所有行,包括那些 where SupervisorApprovedBy IS NOT NULL

null sql-server t-sql case

-3
推荐指数
2
解决办法
7万
查看次数

缓慢地运行一个总是运行得很快的查询

我有两个表,99% 的操作都是简单的选择。我们很少有插入/删除和更新。

这些表上有一个内连接,查询的执行计划是索引查找。99% 的情况下,查询运行得非常快(大约 1 秒)。但有时查询需要 30 秒才能运行。

没有任何模式表明这件事发生的时间。有一次这种情况发生在“12 月 1 日凌晨 3:17:20”。一次是“12 月 8 日晚上 10:13:43”。有一次发生在“12 月 11 日下午 16:50:43”。

我怎样才能找到这个问题从何而来的线索?

SQL Server 是否有记录所有事件的工具?

我的查询只有简单的 where 子句:where id = @id

sql-server sql-server-2014

-3
推荐指数
1
解决办法
670
查看次数

在哪里提交 SQL Management Studio 18.x 的错误?

我们到哪里提交 SQL Management Studio 18.x 的错误?

sql-server ssms

-3
推荐指数
1
解决办法
84
查看次数

访问内存时,访问中央内存访问与通过非本地访问(NUMA - 互连 NUMA)相比是更慢还是更快?

链接: https: //www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/solutions/sql-server-on-vmware-best-practices-guide.pdf

\n
\n

这种具有最终优势的架构也带来了一些需要考虑的权衡,其中最重要的是\xe2\x80\x94访问内存中数据的时间根据相应内存缓存线的本地或远程放置而变化。执行请求的 CPU 核心,远程访问速度比本地速度慢29倍。

\n
\n

29根据实现和处理器系列,这种差异可能高达 3 倍(来源:pdf,第 6 页)

\n
\n

以下是互连的示例(https://www.sqlskills.com/blogs/jonathan/understanding-non-uniform-memory-accessarchitectures-numa/ ):

\n

在此输入图像描述

\n

根据上面的引用 - 访问远程内存中的数据(通过互连)的时间比本地慢 X 倍。

\n

如果没有 NUMA,并且 CPU 访问内存(从中央位置),那么与互连访问相比,它会更慢还是更快?

\n

sql-server numa sql-server-2019

-3
推荐指数
1
解决办法
93
查看次数

仅从表中选择某些列

我有一个包含大约 200 列的 MySQL 表。

每列的名称是col_i(i=1 ,2,..200)。

假设我只需要选择前 50 列,我应该如何进行?

我找到了有关该concat()功能的信息,但我无法使用它。

我知道这可以手动完成,例如通过编写:

SELECT col_1, col_2, ..., col_50 FROM table_1 ;
Run Code Online (Sandbox Code Playgroud)

...但是写每个列名是很累人的。如果可能的话,我正在寻找一种循环方法。

mysql select concat

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

无法在 SQL Server 2005 上创建表类型

我创建了一个定义如下的类型:

CREATE TYPE [dbo].[TypeListingDatePrice] AS TABLE(
    [RowID] [int] NULL,
    [ListPrice] [int] NULL,
    [SoldPrice] [int] NULL,
    [PendStatusDOM] [int] NULL,
    [ListingDate] [int] NULL,
    [StatusDate] [int] NULL,
    [PendDate] [int] NULL,
    [SaleDate] [int] NULL
)
Run Code Online (Sandbox Code Playgroud)

这在 SQL Server 2012 上工作正常,但我无法在 SQL Server 2005 上做同样的事情。它在执行时出错:

消息 156,级别 15,状态 1,第 1 行
关键字“AS”附近的语法不正确。

sql-server-2005 sql-server

-4
推荐指数
1
解决办法
748
查看次数

请解释查询内容

这看起来也正是我所需要的。然而,不精通查询,无法理解其中的一些内容..所以你能为我澄清一些事情吗?

;WITH x AS <--- is this a comment?
( SELECT *, rn = ROW_NUMBER() OVER (PARTITION BY ID, [Type] ORDER BY [Contact No]) FROM dbo.SourceTable )
SELECT ID, HPhone = MAX(CASE WHEN [Type] = 'home' THEN [Contact No] END),
CPhone1 = MAX(CASE WHEN [Type] = 'cell' AND rn = 1 THEN [Contact No] END),
 CPhone2 = MAX(CASE WHEN [Type] = 'cell' AND rn = 2 THEN [Contact No] END),
 WPhone1 = MAX(CASE WHEN [Type] = 'work' AND rn = …
Run Code Online (Sandbox Code Playgroud)

sql-server pivot

-4
推荐指数
1
解决办法
44
查看次数

学生在考试中的位置给我错误

我正在研究学生数据库,并希望根据列中的主题结果获取学生在班级中的位置f_score

我收到一条错误消息:

关键字“ORDER”附近的语法不正确

我正在使用 VB.NET 和 Microsoft SQL Server 2012。这些代码是 MySQL,我想将它们重新写入 SQL Server。这是我正在使用的代码:

Dim str1 As String = "SELECT studentid, f_score, FIND_IN_SET(  sum(f_score),
    (SELECT GROUP_CONCAT( DISTINCT sum(f_score) 
    ORDER BY sum(f_score) DESC ) FROM assessment )) AS rank 
FROM assessment where studentid='" & strid & "' and stuclass='" & strclass & "'; "`
Run Code Online (Sandbox Code Playgroud)

该 SQL 是:

SELECT 
    studentid, 
    f_score, 
    FIND_IN_SET(sum(f_score), 
        (SELECT 
           GROUP_CONCAT(DISTINCT sum(f_score) ORDER BY sum(f_score) DESC) 
        FROM assessment
        )
    ) AS rank 
FROM 
    assessment 
WHERE
    studentid='" & strid …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012

-5
推荐指数
1
解决办法
177
查看次数

`QUOTED_IDENTIFIERS` 究竟是做什么的?

SQL Server 中有一个非常令人讨厌的功能QUOTED_IDENTIFIERS,我想了解更多。简而言之,将选项设置为ON,这不是 Linux 客户端的默认设置,一切正常。没有它,有些事情会神奇地失败。Microsoft 声称该选项是DEFAULT,然后他们在自己的默认客户端中默认更改它。随着SET QUOTED_IDENTIFIERS OFF;,这有效,

CREATE TABLE f (
  a int,
  b int,
  g AS (CASE WHEN a>b THEN a ELSE b END),
  l AS (CASE WHEN a>b THEN b ELSE a END),
  UNIQUE(a,b)
);
Run Code Online (Sandbox Code Playgroud)

有了SET QUOTED_IDENTIFIERS OFF;,这并不能正常工作,

CREATE TABLE f (
  a int,
  b int,
  g AS (CASE WHEN a>b THEN a ELSE b END),
  l AS (CASE WHEN a>b THEN b ELSE a …
Run Code Online (Sandbox Code Playgroud)

sql-server linux configuration

-5
推荐指数
1
解决办法
99
查看次数