我的一个数据库每天都在增长几场演出。这是非常不寻常的,因为它仍处于开发阶段。经过小的研究,我发现偶数日志表几乎是数据库的大小(100GB),所以我清除了它。我运行了一个脚本来检查这个数据库中的表大小,一切都恢复正常。也就是说,没有可笑的胖桌子。然而,尽管有问题的表的饮食,数据库的总体大小并没有改变。
有什么建议?
顺便说一句,我正在使用 SQL SERVER 2012
谢谢,大卫
(SQL 和 SQL Server 相对较新)我正在阅读Itzik Ben-Gan 的SQL Server 2012 T-SQL Fundamentals。奥托尔指出:
SQL 在不同的语言元素中对 UNKNOWN 有不同的处理方式
所以,我浏览了 SQL Server 文档,特别是WHEREclause,但找不到任何关于如何NULL/UNKNOWN处理的具体信息。
有人可以指出我正确的文档或指出我在文档中读错的内容吗?(我高度怀疑我的问题的答案深藏在 SQL 标准的某个地方,但对我来说可能太复杂了,至少在这一点上。)
我正在运行 SQL Server 2008 Express 并且遇到了 4GB 大小的问题。在迁移到更大的数据库之前,我想腾出一些空间给我时间。
我不需要我的交易日志。那么,我可以删除我的日志以增加空间吗?
否则,我将不得不创建一个重复的数据库结构,然后将数据复制到新数据库中,然后从原始数据库中删除所有内容,以便我可以重新开始。
在这种情况下,是否有一种“简单的方法”可以将旧表中的数据复制到新表中?
我有几个具有不同列数的表,每个表都可以是real或int,两者都not null可以(如果需要,我可以将它们全部定义为真实的)。
我想编写一个插入全零行的查询。
INSERT [TablesName] DEFAULT VALUES 适用于可为空的列。
我无法使用,INSERT INTO table1 (field1, field2) VALUES (0, 0.0);因为我不知道列数。
是否有查询会为非空表插入具有默认值的新行?
两个查询都返回相同的输出:
select COUNT(id) from Employee
select COUNT(All(id)) from Employee
Run Code Online (Sandbox Code Playgroud)
那么SQL-Server 2008R2 有什么不同呢?
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 …
我有兴趣生成以下视图,其中对不同的交货日期进行编号。
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。
我正在与一位客户合作,该客户从其 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 中的专长,我不确定最好/最安全/最可靠的方法是什么。
我现在的初步计划是:
我对此的担忧/焦虑是:
欢迎任何其他建议。
表的 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 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
sql-server ×10
optimization ×2
corruption ×1
null ×1
performance ×1
queue ×1
ssms ×1
statistics ×1
t-sql ×1