标签: sql-server-2008

ldf 文件的大小增加

可能的重复:
为什么事务日志不断增长或空间不足?

我有一些 sql server 数据库,其恢复模式设置为完整。现在对于某些数据库,ldf 大小已经变大。我尝试定期进行日志备份,但我没有发现 ldf 的物理大小减少。我遵循了 stan20 在此链接中所说的http://social.msdn.microsoft.com/Forums/en-US/databasedesign/thread/704bcfbc-9251-4f4e-9a80-04bc7fe9ae78 但它只减少了逻辑文件大小。那么我如何管理ldf文件的大小?

sql-server-2008 sql-server

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

如何处理大桌子

我们有几个表的问题,这些表非常大,会减慢系统速度。所以我的问题是,对于表中的行数来说,这个大小是否正常,以及可以做些什么来使它更小更轻,它不应该减慢一切。

在此处输入图片说明在此处输入图片说明

CREATE TABLE [dbo].[TransactionEntry](
    [TransactionEntryID] [uniqueidentifier] NOT NULL,
    [TransactionID] [uniqueidentifier] NULL,
    [ItemStoreID] [uniqueidentifier] NULL,
    [Sort] [int] NULL,
    [TransactionEntryType] [int] NOT NULL,
    [Taxable] [bit] NULL,
    [Qty] [decimal](19, 3) NULL,
    [UOMPrice] [money] NULL,
    [UOMType] [money] NULL,
    [UOMQty] [decimal](19, 3) NULL,
    [Total] [money] NULL,
    [RegUnitPrice] [money] NULL,
    [DiscountPerc] [decimal](19, 3) NULL,
    [DiscountAmount] [money] NULL,
    [SaleCode] [nvarchar](50) NULL,
    [PriceExplanation] [nvarchar](50) NULL,
    [ParentTransactionEntry] [uniqueidentifier] NULL,
    [AVGCost] [money] NULL,
    [Cost] [money] NULL,
    [ReturnReason] [int] NULL,
    [Note] [nvarchar](50) NULL,
    [DepartmentID] [uniqueidentifier] NULL,
    [DiscountOnTotal] [decimal](19, 3) NULL,
    [Status] …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 database-design database-size

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

LDF 文件上的 SQL Server 错误 833

我在我的 ldf 文件中收到错误 833,而且我收到了很多错误。

请参阅以下内容。发生这种情况时,我的应用程序已经挂起。

我知道错误 833 已被多次报告,但是如果它始终指向我无法访问的 LDF 文件,这意味着什么?是不是因为LDF文件已经很大了?

我在 Windows 2008 环境中使用 SQL Server 2008 R2。数据库处于无响应状态,重启是唯一删除挂起 I/O 的方法。一旦开始,它还没有结束。

对此有什么可能的解释?请查看 sql 错误日志中的日志文件。

可能也是因为这个错误吗?

http://support.microsoft.com/kb/2708012

顺便说一句,sql server 一直没有响应,这发生在夜间。只有重新启动才能使服务器再次响应。

01/21/2013 12:22:09,spid3s,Unknown,SQL Server has encountered 19 occurrence(s) of I/O requests taking longer than 15 seconds to complete on file [E:\MSSQL.1\MSSQL\DATA\test_database_log.LDF] in database [test_database] (6).  The OS file handle is 0x00000000000008B8.  The offset of the latest long I/O is: 0x00001028a8ac00
01/21/2013 12:15:29,spid3s,Unknown,SQL Server has encountered 17 occurrence(s) of I/O requests taking longer than …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server sql-server-2008-r2 hang

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

SQL Server 2008 R2 中的差异备份

我创建了一个维护计划来备份所有用户数据库(完整)并将它们设置为三天后过期。

事实证明,这在磁盘空间方面的成本效率低下,因此我想切换到差异备份。

然后我创建了一个维护计划来备份所有用户数据库(差异)并将它们设置为在 7 天后过期。

我原以为第一次运行这项工作时,第一次备份必须是完整的,但事实并非如此,它比完整备份应有的要少得多。

我认为它会像这样工作:

第一天:满

第 2-7 天:差异化

然后在第一天它会做另一个完整备份并重新开始。

我只是误解了差异备份的工作原理吗?

我的意思是如果计划没有先进行完整备份,它会以差异方式备份什么?

谢谢!

sql-server-2008 backup

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

安装中心中的主动/主动 SQL Server 群集 (setup.exe)

我想知道在SQL Server 2012/2008 的setup.exe 中选择哪个选项?我这里有的是 Windows Active/Active 集群设置,其中配置了一个仲裁和一个 msdtc。我通过选择“新 SQL Server 故障转移群集安装”安装了我的第一个节点,现在我不确定在第二个节点上选择什么。在第二个节点上,我应该选择相同的“新 SQL Server 故障转移群集安装”还是选择“将节点添加到 SQL Server 故障转移群集”选项。请记住,它将是 A/A SQL Server 群集。感谢您的回答。

sql-server-2008 sql-server sql-server-2008-r2 sql-server-2012

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

SQL Server 的事务日志太大

我有一个有 33 GB 事务日志的数据库。这是因为数据库处于完全恢复模式,在第一次备份之前已经使用了 5 年以上。

我想使用以下命令截断和缩小日志文件

Backup log dbname with truncate_only
go
DBCC shrinkfile('logicalfilename',100)
Run Code Online (Sandbox Code Playgroud)

我想知道在我运行了上面的命令之后,将来我是否能够恢复到 Future full backup 1 和 2 之间的时间点?

时间线

  1. 预截断备份
  2. 截断和收缩
  3. 未来完全备份 1
  4. 未来全备份2

谢谢,

sql-server-2008 sql-server backup restore

2
推荐指数
3
解决办法
5934
查看次数

SQLOS 内部 – 调度

使用在 Windows Server 2008 R2 SP1 上运行的 SQL Server 2012 Enterprise Edition SP1 对于 SQLOS 上的每个逻辑处理器核心,都有一个分配给它的调度程序。这些调度程序可以被视为状态“VISIBLE ONLINE”sys.dm_os_schedulers

工作线程(任务)可以在调度程序上运行,并且这些线程(任务)可以具有各种状态,例如基于等待队列

a) 暂停在等待队列中等待资源可用
b) 可运行队列(主要是 FIFO,除非受资源调控器控制)或
c) 当前在调度程序上运行。

我的问题是说例如一个任务(SELECT在这种情况下是查询)首先进入调度程序(我们称之为调度程序 A)但发现它必须等到页面被带入内存(IO 操作)它现在被放入等待队列在挂起状态下,一旦 IO 完成,该特定工作线程(任务)就会发出信号并按到达该队列的顺序放入可运行队列。

任务是否总是必须转到调度程序A来完成其时间片,或者它可以切换其上下文,现在可以在没有可运行任务的任何空闲调度程序(我们称之为调度程序B)上运行?如果有上下文切换,它的作用是什么?

sql-server-2005 sql-server-2008 sql-server-2012

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

根据列中的值返回记录的百分比

我正在处理一个 sql 查询,它需要根据特定列的值获取记录的百分比。百分比由用户给出。查询的精简版本如下

SELECT OrganizationID,
       CustomerID,
       OrderID
  FROM x
Run Code Online (Sandbox Code Playgroud)

输出看起来像

 OrganizationID, CustomerID, OrderID 
  123             abc         p456
  123             cba         p457 
  123             bac         p458 
  456             def         p987 
  456             efd         p988
Run Code Online (Sandbox Code Playgroud)

我需要能够为每个组织 ID 提取 50% 的输出。所以在这个例子中,我会返回 2-3 条记录。只要提取正确百分比的记录,哪些记录并不重要。

关于如何解决这个问题的任何想法?

sql-server-2008 t-sql

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

更改 SQL Server 2008 名称

我想更改我的 SQL Server 的名称。

目前我正在连接到SERVER1\SQLSERVER. SERVER1是机器名称。我想更改它,以便我可以连接SERVER2\SQLSERVER并保留SERVER1为机器名称。

我试过:

sp_dropserver 'SERVER1\SQLSERVER'
sp_addserver 'SERVER2\SQLSERVER', local
Run Code Online (Sandbox Code Playgroud)

然后我重新启动了服务器。

如果我验证我得到新的服务器名称:

select @@servername
Run Code Online (Sandbox Code Playgroud)

看起来名称已更改,但SERVER2\SQLSERVERSERVER1\SQLSERVER连接仍然有效时我无法连接。

我在这里错过了什么......这甚至可能吗?

sql-server-2008 sql-server

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

INT IDENTITY 列上的 PK 分片

有简单的Int Identity我PK。

表有 220 万行。

删除了零行,从未禁用身份。

一次通过 .NET 插入一行,每次插入都检索SCOPE_IDENTITY().

20 与它的一些 FK 关系。

我有 98% 的碎片。

知道是什么原因造成的吗?

我知道修复是重建,今晚会这样做。

我想知道如何避免它。

自从填充以来,我已经添加了 3 列。
一些列几乎修改了每个值。
属性的长度没有太大变化。

表定义

/****** Object:  Table [dbo].[docSVsys]    Script Date: 02/13/2013 15:52:46 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[docSVsys](
    [sID] [int] IDENTITY(1,1) NOT NULL,
    [sParID] [int] NULL,
    [docID] [varchar](100) NOT NULL,
    [attBeg] [varchar](100) NULL,
    [attEnd] [varchar](100) NULL,
    [docDate] [smalldatetime] NULL,
    [addDate] [smalldatetime] NOT NULL,
    [mimeType] [varchar](40) …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

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