Questions tagged «sql-server»

所有版本的Microsoft SQL Server(非MySQL)。还请添加特定于版本的标记,例如sql-server-2016,因为它通常与问题相关。

3
SQL Server 2008 / R2恢复模型
我们某些服务器上的几乎所有数据库都不需要完全恢复模型(我们不执行事务日志备份),默认应始终是创建数据库并指定简单恢复模型。 出于某些实际原因,经常使用SSMS创建许多数据库。但是,可能会出错,并且操作员会忘记指定简单恢复模型。几天后,由于三个或四个从未被截断的60GB日志文件而导致磁盘空间不足时,这会导致“意外”。 通过在model数据库上配置恢复模型,可以使简单恢复模型成为新数据库的默认设置。但是,是否建议这样做,如果我这样做,将来它会以任何方式咬我吗?

2
非DBA询问:如何通过备份/还原将SQL Server实例无痛地复制/移动到另一台服务器?
我们只有一台新服务器,因此我需要从旧数据库框中复制现有SQL Server 2008实例。 我通常通过复制.mdf和日志文件并附加它们来执行此操作,但是由于它们使用24/7,因此无法脱机,因此我已经备份了数据库并将其还原到新数据库上机。但是,我最终遇到了一些问题,其中一个与孤立用户有关。因此,我要寻找的是一种故障转移过程,以最小的麻烦/痛苦/头痛使一切顺利进行。我是一个.Net开发人员,我掌握了大量SQL,但是SQL Server的内部工作方式在很大程度上对我还是个谜,我发现拖累MS文档很麻烦。 请帮忙。

5
如何监视死锁
您何时开始对SQL Server 2005/2008死锁进行故障排除以及如何解决?通过SQL Server性能状况警报,对象-> SQLServer:Locks,计数器->锁定等待/秒,实例:_Total,如果计数器:值超过3发出警报来打开SSMS警报。这是否是一种主动的监视方式?可接受的值是多少?我非常感谢您的帮助。谢谢!!!

1
SQL Server 2008 R2脏读-如何非原子性?
我想知道在未提交未提交的隔离级别下,“脏”读取会“多么脏” 。我知道已经更新但尚未提交的行是可见的,但是: 行是否可以显示为部分更新-即某些列已更新而另一些未更新? 单个列是否可以显示为部分更新。例如,如果您有一个varchar(4000)列正在完全更新并且假设它实际上包含4000个字符。您能读说以前状态的2k字符和新状态的2k字符吗?长度大于8k的varchar(max)呢? 更新:经过一番辩论,最小的共识是,如果列大小> 8KB,则即使在列本身内也可能进行脏读。

5
在SQL Server中找出多少记录没有正确电话号码的最佳方法是什么?
我有一个领域,人们在历史上可以用来自由提供价值。我需要确定没有适当值的记录,以便清理它们。 我一直在SSIS中四处寻找。我的倾向是在某些C#代码中使用带有正则表达式的脚本组件,然后进行重定向。仍然,我想知道SSIS中是否有一种方法可以不使用C#来执行此操作。 我没有很多运气找到一种方法来找出多少记录没有适当的电话号码。


8
标识列或UDF显式生成唯一ID?
我正在就是否最好PRIMARY KEY使用Identity Columns(我们明确使用生成唯一ID的UDF)进行辩论。 我在为“身份栏”争论。 他说,我的搭档正在争吵手动生成值 通过将UDF放在另一个可以放置UDF的桌子上 锁定资源 用一个称为ID_Value的字段递增ID表1 使用它作为全局唯一标识符 或者id+1在插入时让表格做一个 在没有标识约束的服务器和/或环境之间移动数据更容易;从一个有数据的数据库移动到另一个具有类似暂存数据或虚拟数据的类似数据库。对于非生产中的测试,我们可能希望将昨天的所有记录拉到暂存阶段进行测试。 哪种实现更有意义?

5
SQL Server命令行用法?可能吗?
我一直在尝试使用SQL Server Management Studio 2008内置的“解决方案资源管理器”来管理一个项目,经过2周的苦苦挣扎,我决定我真的不在乎它。它的“便利”功能实际上是一个障碍。 不幸的是,我工作的地方是一家MS商店,而且完全束手无策。我想回到命令行(我渴望Vim!)。我已经安装了一个带有TortiseSVN前端的本地Subversion存储库,以替换上面提到的“ Solution Explorer”并使其运行良好。我还安装了Vim,并且仍在进行自定义时,让它嗡嗡作响。 但是,我尚未找到解决方案的一件事是如何通过命令行对SQL Server运行命令。我习惯了MySQL / Postgres命令行提示符,因为那是我过去使用过的,并且在我上课时一直在使用。但是,我似乎找不到在Windows中通过命令行执行脚本的方法。我目前在Vim中编辑它们,在SSMS中刷新页面,然后执行。除非需要,否则我什至不愿触摸SMSS。 我看到过一些建议使用sqlsharp的帖子,但是当我转到该页面时,我感觉不完全是我想要的。 - 编辑 我真的希望可以有2个复选标记。P. Campbell提供了正确的技术答案,并且我已经尝试了几次(尝试sqlcmd时我总是遇到错误……正在研究命名管道的运行方式……即使我已经设置了它)并启用它,似乎无效。) 尝试过但没有成功之后,我尝试了将其复制并粘贴到Management Studio方法中的方法,但这太荒谬了。因此,我认为HardCode也是正确的。

2
对于SQL 2008 Web Edition,“太大”是多少?
对于我们即将托管的应用程序,我需要在SQL Server 2008 Web版本和SQL Server 2008 Enterprise版本之间进行选择。没有任何“必备”功能:该应用程序当前在SQL Express上运行,但将超过SQL Express施加的10GB最大大小。 我正在查看此比较表,以及本页“可伸缩性和性能”中最重要的表格。随着表越来越大,诸如“表和索引分区”之类的功能对于保证性能速度至关重要。但是,这将需要多少表大小? 我应该使用什么策略来确定数据库的大小和使用是否需要Enterprise Edition可伸缩性和性能功能?

1
有没有可靠的方法来确定何时应运行DBCC CLEANTABLE来回收空间?
最近,我不再只是在文件利用率接近80%时才增长文件,而是通过碎片整理,添加和删除聚簇索引,实现行或页面压缩等常用技巧更主动地回收空间。 但是,在某些情况下,我可以通过执行DBCC CLEANTABLE回收更多的空间。在我的环境中有成百上千个数据库,因此不可能知道用户在每个数据库中做什么,并且完全可以接受涉及删除固定长度列的更改。通常,通过查看我编写的某些对象空间利用脚本中的行数与页数,可以发现这些机会。我想通过尝试自动检测这种情况来使这一步骤更进一步。 我想知道的是,是否有人在积极监视这些机会,如果是,您在寻找什么? 我的想法是写一些东西来收集行的最大和最小大小,表中的行数,分配的页数和使用的页数,然后做一些基本的数学运算来记录结果远远超出了“预期”范围。

2
是否有人使用SQL Server功能创建按数字区分的存储过程组?
问题是指此msdn文档中的number参数 如果不这样做,则可以在SQL Server中创建多个存储过程(按数字区分),然后将其删除。 create procedure dbo.stored_proc1 as select 1 go create procedure dbo.stored_proc1;2 as select 2 go exec stored_proc1 -- returns 1 go exec stored_proc1;2 -- returns 2 go drop stored_proc1 -- drops both go 我想知道这个功能是否被任何人用于有用的东西,或者仅仅是出于历史的好奇心。


2
何时将nvarchar / nchar与SQL Server 2019一起使用?
在SQL Server 2019中,Microsoft引入了对和数据类型的UTF-8支持,并说:CHARVARCHAR 根据使用的字符集,此功能可以节省大量存储空间。例如,使用启用了UTF-8的排序规则将具有ASCII字符串的现有列数据类型从NCHAR(10)更改为CHAR(10),可将存储需求减少近50%。这种减少是因为NCHAR(10)需要22个字节来存储,而CHAR(10)对于相同的Unicode字符串则需要12个字节。 UTF-8似乎支持每个脚本,因此基本上我们可以开始在varchar和char列中存储Unicode数据。就像文档中所说的那样,这可以减少表和索引的大小,并且由于读取的数据量更少,因此可以得到更好的性能。 我想知道这是不是意味着我们可以停止使用nvarchar和nchar列,它实现UTF-16? 谁能指出一个方案和理由,不使用带UTF编码的char数据类型并继续使用n-chars类型?


2
如何使用TSQL动态更改数据库
我在尝试将SSMS的上下文动态更改为动态SQL中指定的数据库时遇到麻烦: EXEC sys.sp_executesql N'USE db1 ' ; 它成功执行,但是SSMS的数据库上下文未更改。 我已经尝试过对上面的内容做一些细微的修改,就像这样 DECLARE @sql NVARCHAR(100) DECLARE @db NVARCHAR(50) SET @db = N'db1' SET @sql = N'Use ' + @db EXEC sp_executesql @sql 再次,它成功执行,但是数据库没有更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.