标签: sql-server

减少数据库大小 - SQL Server、SSMS

我的一个数据库每天都在增长几场演出。这是非常不寻常的,因为它仍处于开发阶段。经过小的研究,我发现偶数日志表几乎是数据库的大小(100GB),所以我清除了它。我运行了一个脚本来检查这个数据库中的表大小,一切都恢复正常。也就是说,没有可笑的胖桌子。然而,尽管有问题的表的饮食,数据库的总体大小并没有改变。

有什么建议?

顺便说一句,我正在使用 SQL SERVER 2012

谢谢,大卫

sql-server ssms t-sql

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

SQL Server 2012 中不同的子句如何处理 Null/Unknow?

(SQL 和 SQL Server 相对较新)我正在阅读Itzik Ben-Gan 的SQL Server 2012 T-SQL Fundamentals。奥托尔指出:

SQL 在不同的语言元素中对 UNKNOWN 有不同的处理方式

所以,我浏览了 SQL Server 文档,特别是WHEREclause,但找不到任何关于如何NULL/UNKNOWN处理的具体信息。

有人可以指出我正确的文档或指出我在文档中读错的内容吗?(我高度怀疑我的问题的答案深藏在 SQL 标准的某个地方,但对我来说可能太复杂了,至少在这一点上。)

null sql-server

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

删除日志以增加数据库空间?

我正在运行 SQL Server 2008 Express 并且遇到了 4GB 大小的问题。在迁移到更大的数据库之前,我想腾出一些空间给我时间。

我不需要我的交易日志。那么,我可以删除我的日志以增加空间吗?

否则,我将不得不创建一个重复的数据库结构,然后将数据复制到新数据库中,然后从原始数据库中删除所有内容,以便我可以重新开始。

在这种情况下,是否有一种“简单的方法”可以将旧表中的数据复制到新表中?

sql-server database-size transaction-log

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

如何将默认值插入具有非空列的表?

我有几个具有不同列数的表,每个表都可以是real或int,两者都not null可以(如果需要,我可以将它们全部定义为真实的)。

我想编写一个插入全零行的查询。

INSERT [TablesName] DEFAULT VALUES 适用于可为空的列。

我无法使用,INSERT INTO table1 (field1, field2) VALUES (0, 0.0);因为我不知道列数。

是否有查询会为非空表插入具有默认值的新行?

sql-server

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

COUNT(ColName) 与 COUNT(ALL(ColName)) 之间的区别

两个查询都返回相同的输出:

select COUNT(id) from Employee

select COUNT(All(id)) from Employee
Run Code Online (Sandbox Code Playgroud)

那么SQL-Server 2008R2 有什么不同呢?

sql-server

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

Clustered composite key high fragmentation and fill factor

I've recently made a table to hold the language preferences of my users as follow:

CREATE TABLE [dbo].[systemUserLangPreference](
  [systemUserID] [int] NOT NULL,
  [langID] [int] NOT NULL,
  [preferredOrder] [int] NOT NULL,
  [createdBy] [int] NOT NULL,
  [createdOn] [datetime] NOT NULL,
  [lastActionBy] [int] NOT NULL,
  [lastActionOn] [datetime] NOT NULL,
CONSTRAINT [PK_systemUserLangPreference] PRIMARY KEY CLUSTERED 
([systemUserID] ASC, [langID] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
 ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

There's …

database-design sql-server optimization fragmentation

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

每次交货编号多个日期

我有兴趣生成以下视图,其中对不同的交货日期进行编号。

SalesID    Delivery Date DateNo
SO00000014 2014-02-21    1
SO00000015 2014-02-13    1
SO00000016 2014-01-28    1
SO00000017 2014-03-17    1
SO00000018 2014-02-13    1
SO00000020 2014-03-19    1
SO00000020 2014-03-20    2
SO00000020 2014-03-21    3
Run Code Online (Sandbox Code Playgroud)

我的问题是如何对与上面 SO00000020 中的单个 SalesId 关联的不同日期进行编号。我正在使用 SQL Server 2008。

sql-server-2008 sql-server

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

在小的停机时间窗口中修复损坏的日志文件

我正在与一位客户合作,该客户从其 SharePoint 数据库之一的日志备份中收到以下错误:

Backup detected log corruption in database FOOPORTAL_SP2010_Config. Context is FirstSector. 
  LogFile: 2 'D:\MSSQL2K8\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\FOOPORTAL_SP2010_Config_log.LDF' 
  VLF SeqNo: x864 VLFBase: x172d0000 LogBlockOffset: x176b1800 
  SectorStatus: 2 LogBlock.StartLsn.SeqNo: x771 LogBlock.StartLsn.Blk: x1f0c 
  Size: x400 PrevSize: x200
Run Code Online (Sandbox Code Playgroud)

我知道这表明磁盘硬件和/或 IO 子系统存在问题,我们一直在与托管提供商合作。具体来说,这似乎是 /a 磁盘上的一个“坏点”,因为该数据库的日志文件一直报告它,但过去几周其他 6 个数据库日志备份没有报告其他错误,也不适用于 20 多个其他数据库的完整数据备份中的任何一个。

我的直接问题是客户端已经以这种方式运行了几个星期,因为这是一项强制要求的 24x7 服务,他们一直无法给我一个停机服务窗口来解决这个问题,直到今晚(突然)2 小时. 不幸的是,数据库损坏和这种管理工作不是我在 SQL Server 中的专长,我不确定最好/最安全/最可靠的方法是什么。

我现在的初步计划是:

  1. 停机窗口一开始就对数据库进行完整备份(完整备份一直在工作,没有错误)
  2. 分离旧数据库
  3. 删除空间的数据文件
  4. 重命名日志文件(仍然保留它)
  5. 从步骤 1 的新备份中恢复数据库的新副本。

我对此的担忧/焦虑是:

  • 这应该工作吗?或者是更安全/更可靠的方法?
  • 我只有 2 小时,那么有没有更省时的方法?

欢迎任何其他建议。

sql-server sql-server-2008-r2 corruption

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

如何提高新插入数据联接中 1 行的行估计值

表的 CacheId 列存在自定义统计信息。隔夜统计更新后:

Statistics for INDEX 'ST_TableName_CacheId'.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Name                            Updated                         Rows                            Rows Sampled                    Steps                           Density                         Average Key Length              String Index                    
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ST_TableName_CacheId Apr 26 2014  2:04AM             121482                          121482                          6                               0                               4                               NO                                                              121482                          

All Density                     Average Length                  Columns                         
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0.1666667                       4                               CacheId                         

Histogram Steps                 
RANGE_HI_KEY                    RANGE_ROWS                      EQ_ROWS                         DISTINCT_RANGE_ROWS             AVG_RANGE_ROWS                  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
39968                           0                               20247                           0                               1                               
40058                           0                               20247                           0                               1                               
40062                           0                               20247                           0                               1                               
40066                           0                               20247                           0                               1                               
40069                           0                               20247                           0                               1                               
41033                           0                               20247                           0                               1 …
Run Code Online (Sandbox Code Playgroud)

sql-server optimization statistics cardinality-estimates

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

检索下一个队列项

我在 SQL Server 2012 中有一个简单的表,它实现了一个处理队列。随着数据的插入,检索下一个项目的查询从 <100 毫秒变为恒定的 5-6 秒。如果有人能指出性能突然下降的原因,我将不胜感激。(这似乎几乎是一夜之间的下跌)。

这是表定义:

CREATE TABLE [dbo].[messagequeue] (
    [id]             INT             IDENTITY (1, 1) NOT NULL,
    [testrunident]   VARCHAR (255)   NOT NULL,
    [filesequence]   INT             NOT NULL,
    [processed]      BIT             NOT NULL,
    [dateentered]    DATETIME        NULL,
    [filedata]       VARBINARY (MAX) NULL,
    [retries]        INT             NOT NULL,
    [failed]         BIT             NOT NULL,
    [msgobject]      VARBINARY (MAX) NULL,
    [errortext]      VARCHAR (MAX)   NULL,
    [sourcefilename] VARCHAR (MAX)   NULL,
    [xmlsource]      VARCHAR (MAX)   NULL,
    [messagetype]    VARCHAR (255)   NULL
);

CREATE NONCLUSTERED INDEX [messagequeue_sequenc_failed_idx]
    ON [dbo].[messagequeue]([processed] ASC, [failed] ASC)
    INCLUDE([id], …
Run Code Online (Sandbox Code Playgroud)

performance sql-server sql-server-2012 queue query-performance

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