在我的一个生产数据库中,我有一个包含 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) 我有两台服务器,Prod 和 Test,都运行 SQL Server 2008 RTM。
是否可以使用 PowerShell 或 VBScript 将数据库从一台服务器复制到另一台服务器?
副本当然应该包括数据库的所有内容,但特权除外,因此我不会将自己锁定在编辑目标之外。
目标数据库应该被清除/重置或完全覆盖,因此源和目标是相同的。
此外,与源的连接应该是只读的,并且(如果可能)只能启动复制过程,而实际上无法访问数据。
我对 PowerShell 有点熟悉,所以如果这只是意味着连接和启动任务,它应该是可行的。还是我必须寻找高级解决方案?
谢谢你。
我遇到了一个 12 GB 的生产数据库,日志为 90 GB。完整和差异数据库备份是使用第三方备份工具进行的,但没有人备份事务日志,因此它在过去一年中失控了。
现在我想通过首先从 SQL Server 进行完整备份然后进行事务日志备份来解决这种情况。服务器上没有太多空间,所以我想提前知道事务日志备份大约有多大。我知道事务日志只会在备份后被截断,所以我担心备份也会是 90 GB 并阻塞服务器。
到目前为止,我找不到有关备份大小的任何信息,有人可以解释一下大小方面会发生什么吗?提前致谢!
编辑:
SQL Server版本为标准版,数据库恢复模式完整。
在性能方面,如果我有这样的表:
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
我通过命令提示符运行我的数据库的每日备份:
c:\sqlcmd -H localhost -Q "BACKUP DATABASE test TO DISK='c:\test.bak'"
Run Code Online (Sandbox Code Playgroud)
但是新的备份替换了以前的备份。请告诉我要更改什么,以便所有备份都存储在磁盘上。
我们已将所有 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 行,因此如果我理解正确,则没有表使用任何文件流数据。
我正在尝试使用向导将 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 导入和导出向导)
我们来玩乐透吧!
好的。我有一个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) 我在 SQL Server 2008 中设置了可更新订阅者的事务复制。它有 3 个订阅者和 1 个发布者。由于与数据库和使用该数据库的应用程序相关的一些错误,我不得不再次设置复制。但是,现在当我尝试更新应用程序中的某个部分时遇到了问题。它没有通过 with update 并给出以下错误:
执行消息:可更新订阅:发布者和订阅者之间的行不匹配。运行分发代理以刷新订阅服务器上的行。可更新订阅:回滚事务。事务在触发器中结束。该批次已中止。方法触发的异常:OnError
更新语句显然没有通过。但是,当我第二次尝试它时,它起作用了。复制工作。一切似乎都是复制。
任何人都可以解释为什么会发生此错误以及我如何解决此问题。我真的很感激你的帮助!...
是否可以安排一个简单的查询来运行 Daily 并将接收到的数据导出到 Excel 文件中?
sql-server-2008 ×10
sql-server ×6
backup ×2
performance ×2
excel ×1
filegroups ×1
filestream ×1
index ×1
jobs ×1
replication ×1
t-sql ×1