我像这样运行 SQL Server 2005 的批量复制程序 BCP:
bcp mydb.dbo.mytbl in myfile.blk -c -S mysvr -U mylogin -P mypass
Run Code Online (Sandbox Code Playgroud)
它运行并产生如下输出:
Starting copy...
1000 rows sent to SQL Server. Total sent: 1000
...
1000 rows sent to SQL Server. Total sent: 55000
Run Code Online (Sandbox Code Playgroud)
但后来它停止了。光标没有返回提示,我没有收到“...行已复制”。信息。
我尝试查询目标表,我已经可以看到我想要导入的行。
我要终止控制台吗?会回滚吗?
有什么方法可以强制 SQL Server 永远不要将订阅标记为非活动状态?
当出现连接问题并且我不想每次都重新初始化订阅时,它会偶尔发生。
请注意,我不是在谈论订阅被标记为过期......就像不活动一样。
我们将保留设置为 0(无限)。我宁愿拥有一个大型分发数据库,也不愿通过 WAN 为订阅者重新初始化 15GB 的数据库。无论如何,这里真正的问题是,它们有时会在短短几个小时内被标记为不活动……或者有时是几天……这似乎是零星的。有什么方法可以告诉为什么 SQL 决定将它们标记为非活动状态?
我在类型为 的外键列上有一个非聚集的、非唯一的索引bigint。当我在线重建索引时,平均碎片下降到3%,有2个碎片,30页。
当我离线运行相同的重建索引时,平均碎片为 25%,有 4 个碎片和 28 个页面。
我认为FILLFACTOR是90。数据库是77GB。我不是 DBA 或类似人员,我是 C# 开发人员,所以我并不完全熟悉所有术语。此表上没有活动,这是在我们的开发环境中发生的。
这是查询,名称已编辑。
ALTER INDEX [IX] ON [dbo].[Table]
REBUILD WITH
(
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON,
ONLINE = ON,
SORT_IN_TEMPDB = ON
);
Run Code Online (Sandbox Code Playgroud)
什么可能导致这种差异?同样的情况发生在多个表上。
sql-server-2005 sql-server fragmentation index-maintenance online-operations
如何在不创建分布式事务的情况下从远程存储过程插入本地表?我想在远程服务器上运行一个存储过程,并将输出用作插入本地表的源。
sql-server-2005 sql-server stored-procedures remote distributed-transactions
我有这个问题。
我需要使用 SA 帐户在 MS SQL 数据库上执行一些管理任务。

如何激活操作系统身份验证以便我可以登录数据库并重置 SA 密码?
我有一个很大的查询要调整。我写了很多查询,但没有做很多调整。我已经包含了 SQL Sentry Plan Explorer Free (SSPEF) 的屏幕截图:

在计划的上述部分中,表 pb_WorkRquestLog 包含 229,001 行。但是,查询计划显示大约。3.48 亿行(229,001 x 1,520 次迭代):

没有 where 子句,因此查询使用的是聚集索引扫描。我已经用 FULLSCAN 重建了所有索引并更新了所有统计信息。
这部分计划正在执行的代码是:
select distinct
wrs.ServiceKey
, owner.DepartmentName AS GroupName
, owner.UserName AS UserId
, owner.WRLCreateDateTime
, owner.WRLNotes
, wrx.CreatedDate as WRCreateDateTime
, wrx.Id
, wrx.Description
, cast(wrx.Notes as varchar(2500)) as Notes
from
prism72ext.dbo.pb_WorkRequestService wrs
Join prism72ext.dbo.pb_WorkRequest wrx on (wrs.WorkRequestId = wrx.Id and wrx.Status = 'Incomplete')
left join (
select
wl.WorkRequestId
, d.Name AS DepartmentName
, u.UserName
, wl.CreatedDate as …Run Code Online (Sandbox Code Playgroud) performance sql-server-2005 execution-plan query-performance performance-tuning
我有一个综合测试,它重现了我们在生产环境中的一些错误。以下是重现它的 2 个脚本:
第一
DBCC TRACEOFF(-1,3604,1200) WITH NO_INFOMSGS;
SET NOCOUNT ON;
IF @@TRANCOUNT > 0 ROLLBACK
IF object_id('test') IS NOT NULL
DROP TABLE test
IF object_id('TMP_test') IS NOT NULL
DROP TABLE TMP_test
IF object_id('test1') IS NOT NULL
DROP TABLE test1
CREATE TABLE test(Id INT IDENTITY PRIMARY KEY)
GO
INSERT test DEFAULT VALUES
GO 2000
WHILE 1 = 1
BEGIN
CREATE TABLE TMP_test(Id INT PRIMARY KEY)
INSERT TMP_test SELECT * FROM test
WAITFOR DELAY '0:00:00.1'
BEGIN TRAN
EXEC sp_rename 'test', 'test1' …Run Code Online (Sandbox Code Playgroud) 我们有一个 SQL Server 2005 服务器,其中包含大约 200 个低流量/无流量存档数据库,并且该服务器没有备份到任何其他设备。数据库文件(MDF 和 LDF)存储在 RAID 阵列上,当 RAID 控制器出现故障时,我们担心会丢失数据。我们将 RAID 控制器和阵列发送给数据恢复公司,他们能够恢复大部分文件,但在某些情况下,我们有事务日志,但缺少主要数据文件。
是否可以仅使用事务日志将数据库恢复到最后一个事务(应该是在创建数据库之后),或者这是无法完成的事情?
我意识到这可能被标记为重复,但我特别询问 SQL Server 2005
我在互联网上阅读了相互矛盾的建议,所以我在这里问。特别是在 SQL Server 2005 中,varchar 列中的 NULL 是否与空字符串占用相同的空间?
我在另一个驱动器上构建了一个“持有”表,并用源表中的数据填充它,并且在字段为nullif([field],'')空的地方,我曾经插入空值来代替空值。
然后我构建了一个与保存表结构完全相同的新表,但我没有用 null 替换空白,而是插入了空白,到目前为止它似乎占用了更多空间(我还没有完成填充它和我无法确定它是否正在占用更多数据)
所以在我进一步填充它并最终得到一个比我想象的更大的表格之前,我最好插入空值还是空白?
编辑:
将数据从持有表迁移到新表后,新表大约大了 4gb。
表设计中只有两个小的差异 - 'serial_number' 字段在保持表中是 char(15) 而在目标表中是 varchar(15)。(序列号的最大长度是 14 并且有很多空值——如果我记得的话,我想大约是 3000 万),并且持有表的聚集索引有一个额外的列 - program_name..
拿着桌
USE [Temp_holding_EWS]
GO
/****** Object: Table [dbo].[AmtoteAccountActivity_holding]
Script Date: 02/17/2017 20:41:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[AmtoteAccountActivity_holding](
[_Date] [char](8) NULL,[Community] [varchar](10) NULL,
[AccountNumber] [varchar](50) NULL,
[Branch] [varchar](10) NULL,
[Window] [varchar](3) NULL,
[Time] …Run Code Online (Sandbox Code Playgroud) 设置
我已经在reextester和dbfiddle上设置了一个示例。
设想
Price list : 它是产品价格表,一个产品可以有多个活动价格,甚至是未来价格。
+---------+-------+------------+--------+--------+
| product | price | date_price | base | active |
+---------+-------+------------+--------+--------+
| 0125 | 90 | 01.01.2017 | 1200 | 0 |
| 0125 | 100 | 25.01.2017 | 1000 | 1 |
| 0125 | 110 | 27.02.2017 | 500 | 1 |
+---------+-------+------------+--------+--------+
| 1200 | 140 | 01.01.2017 | 2000 | 0 |
| 1200 | 150 | 01.02.2017 | 1500 | 1 | …Run Code Online (Sandbox Code Playgroud) sql-server-2005 ×10
sql-server ×8
bulkcopy ×1
performance ×1
recovery ×1
remote ×1
replication ×1
restore ×1