标签: sql-server-2008

一个文件组,多个数据文件,如何获取每个文件中的表列表

在我的一个生产数据库中,我有一个包含 3 个数据文件的文件组,这些文件位于 3 个不同的磁盘上。此文件组上有 50 多个表。

如何确定 3 个数据文件之间 50 个表中每一个的位置?我需要知道每个表的聚集索引驻留在哪个数据文件上。

例子 :

Table A : Datafile 1 : FG1
Table B : Datafile 2 : FG1
Table C : Datafile 1 : FG1
Table D : Datafile 3 : FG1
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server filegroups

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

按需将 SQL Server 数据库从一台服务器复制到另一台服务器

我有两台服务器,Prod 和 Test,都运行 SQL Server 2008 RTM。

是否可以使用 PowerShell 或 VBScript 将数据库从一台服务器复制到另一台服务器?

副本当然应该包括数据库的所有内容,但特权除外,因此我不会将自己锁定在编辑目标之外。

目标数据库应该被清除/重置或完全覆盖,因此源和目标是相同的。

此外,与源的连接应该是只读的,并且(如果可能)只能启动复制过程,而实际上无法访问数据。

我对 PowerShell 有点熟悉,所以如果这只是意味着连接和启动任务,它应该是可行的。还是我必须寻找高级解决方案?

谢谢你。

sql-server-2008 sql-server

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

事务日志备份有多大?

我遇到了一个 12 GB 的生产数据库,日志为 90 GB。完整和差异数据库备份是使用第三方备份工具进行的,但没有人备份事务日志,因此它在过去一年中失控了。

现在我想通过首先从 SQL Server 进行完整备份然后进行事务日志备份来解决这种情况。服务器上没有太多空间,所以我想提前知道事务日志备份大约有多大。我知道事务日志只会在备份后被截断,所以我担心备份也会是 90 GB 并阻塞服务器。

到目前为止,我找不到有关备份大小的任何信息,有人可以解释一下大小方面会发生什么吗?提前致谢!

编辑:
SQL Server版本为标准版,数据库恢复模式完整。

sql-server-2008 sql-server backup transaction-log

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

如果我更新表中的列记录,不包含该列的索引会受到影响吗?

在性能方面,如果我有这样的表:

CREATE TABLE [TESTDATA].[TableA](
    [Col1] [nchar](5) NOT NULL,
    [Col2] [nchar](2) NULL,
    [Col3] [float] NULL
CONSTRAINT [TableA_PK] PRIMARY KEY CLUSTERED 
(
    [Col1] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

然后像这样创建一个非聚集索引:

CREATE NONCLUSTERED INDEX [_idx_TableA]
ON [TESTDATA].[TableA] ([Col2])
WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)

如果我对表执行更新,只有更改Col3数据库才需要触摸索引_idx_TableA吗?

只是好奇性能对所有索引的影响有多大?

performance index sql-server-2008 sql-server-2008-r2 nonclustered-index

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

备份不创建新文件

我通过命令提示符运行我的数据库的每日备份:

c:\sqlcmd -H localhost -Q "BACKUP DATABASE test TO DISK='c:\test.bak'"
Run Code Online (Sandbox Code Playgroud)

但是新的备份替换了以前的备份。请告诉我要更改什么,以便所有备份都存储在磁盘上。

sql-server-2008 backup

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

无法从 Sql Server 2008 中删除 FileStream 组

我们已将所有 varbinary(max) 列数据迁移到 Azure Blob 存储,因此我们希望删除保留在 Sql 2008 数据库和文件流文件组中的旧文件流列,但是当我们尝试这样做时,出现错误:

Msg 5042, Level 16, State 11, Line 2
The filegroup 'FileStreamGroup' cannot be removed because it is not empty.
Run Code Online (Sandbox Code Playgroud)

但是,当我们运行它时:

exec sp_helpfilegroup 'FileStreamGroup'
Run Code Online (Sandbox Code Playgroud)

它正在返回:

groupname           groupid    filecount
FileStreamGroup     2          0
Run Code Online (Sandbox Code Playgroud)

所以文件计数是 0 但它不会让我们删除它,有没有其他人遇到过这个问题,你到底如何从数据库中完全删除文件流。

另外这个查询:

select * from sys.tables t 
join sys.data_spaces ds on t.filestream_data_space_id = ds.data_space_id 
Run Code Online (Sandbox Code Playgroud)

返回 0 行,因此如果我理解正确,则没有表使用任何文件流数据。

sql-server-2008 sql-server filestream

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

将大文件导入 SQL Server 的问题

我正在尝试使用向导将 4gb csv 文件导入到 sql server 中的新表中。当我这样做时,我会收到以下错误。我还包含了我尝试导入的文件的第二行,而没有标题。关于如何解决这个问题的任何想法?

错误 0xc02020a1:数据流任务 1:数据转换失败。列““其他提供商标识符 Issuer_2””的数据转换返回状态值 4 和状态文本“文本被截断或目标代码页中的一个或多个字符不匹配。”。(SQL Server 导入和导出向导)


错误 0xc020902a:数据流任务 1:“输出列”“Other Provider Identifier Issuer_2”“(466)”失败,因为发生截断,以及“输出列”“Other Provider Identifier Issuer_2”“(466)”上的截断行配置指定截断失败。指定组件的指定对象发生截断错误。(SQL Server 导入和导出向导)


错误 0xc0202092:数据流任务 1:处理数据行 79 上的文件“C:\Users\test\Desktop\NPPES_Data_Dissemination_June_2013\npidata_20050523-20130609.csv”时出错。(SQL Server 导入和导出向导)


错误 0xc0047038:数据流任务 1:SSIS 错误代码 DTS_E_PRIMEOUTPUFAILED。组件“Source - npidata_20050523-20130609_csv”(1) 上的 PrimeOutput 方法返回错误代码 0xC0202092。当管道引擎调用 PrimeOutput() 时,组件返回失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。(SQL Server 导入和导出向导)

sql-server-2008 sql-server

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

改进/重构慢查询的技巧?

我们来玩乐透吧!

好的。我有一个numbers80 行(数字 1-80)的表:

create table dbo.numbers (knum tinyint primary key identity);
Run Code Online (Sandbox Code Playgroud)

我有一张桌子,上面有drawid,每个数字都画出来了。

create table dbo.draws (drawid int, drawnumber tinyint);
Run Code Online (Sandbox Code Playgroud)

现在,鉴于该draws表可能包含以下数据:

drawid   drawnumber
  1         10
  1         36
  1         54
  1         75
  2          9
  2         45
  2         46
  2         72
Run Code Online (Sandbox Code Playgroud)

我想知道最后一次出现每种可能的三数排列是什么时候。

我正在使用这个:

declare @curdraw int
select @curdraw = max( drawid)-100 from draws;

select TOP 10 K1,K2,K3, @curdraw-max(d1.drawid)  from THREES 
inner join DrawNumbers d1 WITH (NOLOCK) ON K1 = D1.DRAWNUMBER
INNER JOIN DRAWNUMBERS D2 WITH (NOLOCK) …
Run Code Online (Sandbox Code Playgroud)

performance sql-server-2008 t-sql performance-tuning

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

可更新订阅:发布者和订阅者之间的行不匹配

我在 SQL Server 2008 中设置了可更新订阅者的事务复制。它有 3 个订阅者和 1 个发布者。由于与数据库和使用该数据库的应用程序相关的一些错误,我不得不再次设置复制。但是,现在当我尝试更新应用程序中的某个部分时遇到了问题。它没有通过 with update 并给出以下错误:

执行消息:可更新订阅:发布者和订阅者之间的行不匹配。运行分发代理以刷新订阅服务器上的行。可更新订阅:回滚事务。事务在触发器中结束。该批次已中止。方法触发的异常:OnError

更新语句显然没有通过。但是,当我第二次尝试它时,它起作用了。复制工作。一切似乎都是复制。

任何人都可以解释为什么会发生此错误以及我如何解决此问题。我真的很感激你的帮助!...

replication sql-server-2008 transactional-replication

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

计划查询和导出

是否可以安排一个简单的查询来运行 Daily 并将接收到的数据导出到 Excel 文件中?

sql-server-2008 sql-server excel jobs

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