标签: sql-server

由于数据库服务器移动,排序顺序已更改

我们使用的是 SQL Server 2012(Service Pack 3),最近我们从一台服务器转移到了另一台服务器。之后我们遇到了问题SQL排序顺序问题。我们有很多报告,其中 order by 子句不存在。移动后,排序顺序已更改,报告中的结果与实际结果不同。

我知道通过在所有存储过程和视图中放置 Order by 子句来解决这个问题。由于文件数量庞大,有什么办法可以在SQL配置中解决这个问题吗?

sql-server

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

SQL 服务器上未充分利用的 CPU

我最近升级了我的 SQL Server 2014 硬件。CPU 配置文件看起来很奇怪。我有 24 个 CPU,所有 CPU 在线可见,MAXDOP 为 0。SQL CPU 使用率达到 60% 的峰值并且不会超过这个值,尽管查询是高度 CPU 密集型的,并且大部分处于运行/可运行状态。我检查了会话日志转储,总请求时间仅略高于 CPU 时间,因此排除了 io 等待等。还检查了 OS CPU 使用率跟踪仅略高于 SQL CPU 使用率。想知道为什么 CPU 没有被充分利用。以前的硬件有 16 个 CPU 并且过去饱和度约为 95%

sql-server

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

当我的 RAM 仅为 512 GB 时,SQL Server 2000 TB 的最大内存

当我的机器 RAM 仅为 512 GB 时,为 SQL Server 2012 实例分配的最大值显示为 2000 TB。为什么会这样显示?

附上截图。请检查它并帮助我了解这一点。

在此处输入图片说明

sql-server memory

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

带双引号的动态 SQL

我正在尝试运行动态 SQL 语句,它适用于任何storename没有撇号的语句。但是,当其中storename包含撇号时,语法不正确,但是在这种情况下我无法使用动态 SQL。

我应该如何修改此语法storename以包含 apastrophe?

这是 DDL

Declare @TestHyphens Table(StoreName varchar(500),topItemSale varchar(500))

Insert Into @TestHyphens (StoreName, topItemSale) Values
('Bob''s Burger''s','Pen'), ('Jacks Coffee Shop','Pencil')
,('Larry''s Hair Shack','Rainbow'), ('Manny''s Sandwich Shop','Sunglasses')

Declare @sql nvarchar(4000), @storename varchar(500)

Declare db_cursor CURSOR FOR
Select StoreName
FROM @TestHyphens

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @storename

While @@FETCH_STATUS = 0
BEGIN

        Set @storename = REPLACE(@storename, '''', '''''''''');

        SET @storename = CHAR(39)+CHAR(39)+@storename+CHAR(39)+CHAR(39);

        SET @SQL = N'Select * from @TestHyphens where …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2

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

在 SQL Sentry 中启用碎片管理器

在 SQL Sentry 中启用 Fragmentation Manager 会导致 SQL 实例运行缓慢?是否需要额外的资源?

sql-server

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

SQLServer 中的 NVARCHAR 到 AWS Redshift 中的 VARCHAR

我正在尝试将表从 SQL 服务器移动到 AWS Redshift。在尝试移动 NVARCHAR 字段时,我读到 Redshift 在内部将 NVARCHAR 转换为 VARCHAR。那么,SQL Server 中的 NVARCHAR(100) 将等同于 Redshift 中的 VARCHAR(100) 或 Varchar(200) 吗?如果我想直接将 SQLServer 中的 NVARCHAR 字段定义为 Redshift 中的 VARCHAR,是否需要将字段长度加倍?

sql-server aws redshift

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

在 AlwaysOn 副本上创建 SQL 登录名和用户

我有一个数据库 (DB1),它同步到另一台服务器上的 (DB2)(通过 AlwaysOn - SQL Server 2014)。

我想授予用户对 DB2 的读取权限。我在 DB1 中创建了一个 SQL 登录名和数据库用户。新的数据库用户迁移到 DB2,但 SQL 登录名没有迁移(这是有道理的)。

问题是,当我尝试在 DB2 上为用户创建 SQL 登录并授予用户对 DB2 的读取权限(绑定到来自 DB1 的用户帐户)时,我收到一条错误消息,指出 DB2 是只读的且无法修改。

那么,我怎样才能做到这一点?

sql-server availability-groups logins

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

从一个大的平面文件中批量插入前 1000 行

我有一个包含数亿行的大型平面文件。我只想插入其中的前 1000 个。我怎样才能做到这一点?

sql-server bcp bulk-insert

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

在开始尝试开始捕获块中删除表 - 是否有任何性能损失?

下面的代码是一个动态 sql,它将为您提供系统中所有警报的列表。

有用。

出于这个问题之外的原因,代码中有一个临时表。

这个问题与我在创建临时表之前确保临时表不存在的方式有关。

我在 try catch 块中放置了一个删除表,如下面的代码所示。

我的问题是:

  • 有没有性能损失?
  • 这样做有什么缺点吗?
  • 为什么这不被视为通常的最佳实践?

我仍然有一些服务器 sql-server-2008-r2 但大多数我的服务器是 sql server 2016。

EXEC Sp_executesql 
N'  

begin try
 drop table #tmp_sp_help_alert 
end try
begin catch
end catch

create table #tmp_sp_help_alert  (
id int null, name nvarchar(128) null,  
event_source nvarchar(100) null, 
event_category_id int null, 
event_id int null, 
message_id int null,  
severity int null, 
enabled tinyint null, 
delay_between_responses int null, 
last_occurrence_date int null, 
last_occurrence_time int null, 
last_response_date int null, 
last_response_time int null, 
notification_message nvarchar(512) null, 
include_event_description …
Run Code Online (Sandbox Code Playgroud)

sql-server dynamic-sql sql-server-2008-r2 error-handling temporary-tables

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

行到列 (SQL Server)

我有一个有两列的表,一列是发布类型,另一列是值。

来源表:

+-----+-------+
|Type | Value |
+-----+-------+
|  C  | 381.22|
|  D  | 25.49 |
|  C  | 25.49 |
|  D  | 25.48 |
|  C  | 705.56|
|  D  | 80.00 |
+-----+-------+
Run Code Online (Sandbox Code Playgroud)

我需要创建一个分离类型 C 和 D 的视图,并列出它们的值。

我需要它看起来像这样:

+------+-----+
|Credit|Debit|
+------+-----+
|381.22|25.49|
|25.49 |25.48|
|705.56|80.00|
+------+-----+
Run Code Online (Sandbox Code Playgroud)

我尝试使用 SELECTS 创建两个单独的虚拟列,只是为了列出相应类型的值。

SELECT 
    (SELECT [value] FROM [table] WHERE [type] IN ('D')) AS Debit,
    (SELECT [value] FROM [table] WHERE [type] IN ('C')) AS Credit
Run Code Online (Sandbox Code Playgroud)

发生错误是因为两个 SELECTS 都返回多个结果:

Subquery returned …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

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