小编Jon*_*gel的帖子

SSD 上 SQL Server 2012 中 tempdb、mdf 和 ldf 文件的最佳位置?

我意识到这可能是一个非常开放的问题,答案可能会有所不同,但是在谈论 SSD 时,SQL Server 2012 中 tempdb、mdf 和 ldf 文件的最佳位置是什么?

新购买前,我有一个现有的 SSD,其中安装了 SQL Server 2012 核心文件和 tempdb,并且在 7200rpm 的 HDD 上安装了 mdf/ldf。然后我买了2个SSD,初衷是把mdf放在一个上,ldf放在另一个上。

但是,通过更多地阅读它,当涉及到 SSD 时,用于 mdf 和 ldf 文件的单独物理磁盘并不真正适用。正确的?

所以,我想到了以下几点:

SSD 1 - SQL Server 2012 核心文件和 Windows
SSD 2 - tempdb
SSD 3 - mdf 和 ldf

如果它有所不同,这将只专用于一个数据库,因此多个数据库之间不会有任何争用。

我的“思考”设置是好的还是只是一种浪费(即没有理由分离出 tempdb),我现在有一个额外的 SSD 可以在其他地方使用?

sql-server storage sql-server-2012

9
推荐指数
1
解决办法
4083
查看次数

奇怪的行为 DBCC Shrinkfile

我正在尝试针对 95% 的数据已存档和删除的数据库以 1GB 的块运行 dbcc 收缩文件。我有一个 235GB 的文件,其中 9GB 是数据/索引。我想把它缩小到 50GB。我知道收缩数据库文件是不好的,它会导致碎片等。作为数据清除/收缩的一部分,我们还有一个重建 idnex 脚本。

当我在自己的工作站(四核、12GB RAM、2 个 SATA 驱动器)上针对数据库运行 dbcc 收缩文件脚本时,收缩需要大约 8-10 分钟。

在数据清除后针对数据库的相同副本运行相同的代码时,在我们的测试环境中(80 多个内核、128GB RAM、SSD SAN),需要 70 分钟。请注意,在运行收缩文件时,此服务器上几乎没有活动。它已运行 4 次,结果相同。

然后我采用了不同的方法,将剩余的 9GB 移动到不同的文件组和物理文件。在我自己的工作站上对空的 230GB 文件运行 dbcc shrinkfile 以将其缩小到 50GB 需要 < 1 分钟。

使用相同的方法,在测试环境中,再次需要 70 分钟以上。

在测试环境的 70 分钟运行期间,我根据 Brent Ozar 的脚本拍摄了前后的 waitstats 快照,并且返回的 waittypes 没有显示任何值得关注的内容。下面的前 3 行:

第二采样时间 采样持续时间(以秒为单位) wait_type 等待时间(秒) 每次等待平均等待毫秒数
2013-05-28 11:24:22.893 3600 写日志 160.8 143066 1.1
2013-05-28 11:24:22.893 3600 CXPACKET 20.9 13915 1.5
2013-05-28 11:24:22.893 …

performance sql-server dbcc hardware

9
推荐指数
1
解决办法
716
查看次数

数据类型大于 bigint

我想使用可以容纳超过 19 位数字的数据类型。那么是否有任何可用的数据类型可以容纳大于 19 位的数字?

sql-server datatypes sql-server-2008-r2

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

能否在 SQL Server 2008(或 R2)上禁用 Windows 身份验证登录?

所以我们可以使用 Windows 登录或混合模式,但是我们可以将 SQL Server 配置为仅使用内部登录并阻止所有 Windows 登录吗?

作为预防性(或反应性)过程添加所有潜在的 Windows 登录并将其设置为受限权限的唯一解决方案是什么?

sql-server-2008 security sql-server

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

使用大量 RAM 组织 SQL Server 的策略

我们现在为我们的数据库配备了一台新服务器,除此之外,我们还有 128GB 的​​ RAM 可用(以前我有 16GB)。我知道 SQL Server 非常擅长管理它的资源,但我想知道是否应该在服务器/数据库设置或处理代码(存储过程/索引等)中使用任何特殊设置或策略来确保 SS可用内存的最佳优势。

DB 大约 70GB,它是一个非事务性数据库(它是一个数据仓库)。所以基本上大写然后大量读是事情的正常流程。

sql-server-2008 sql-server hardware

8
推荐指数
1
解决办法
444
查看次数

如何粉碎 .docx XML?

我正在尝试将 xml(实际上是 docx 文件)导入到 sql server 2008 数据库。我几乎是 XML 编程的新手。我用谷歌搜索了很多,但几乎所有的例子都有简单的 xml 文件。这里的 xml 文件有点复杂(请参见下文)。你能给我一些想法我应该如何为这个 XML 创建表以及我应该在 sql server 中运行什么查询。我需要所有标签的值,例如 w:rsidP,w:rsidRDefault,w:rsidR of w:p,w:pStyle,w:bookmarkStart,w:t 标签等。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml">
<w:body>
<w:p w:rsidR="00EF42E0" w:rsidRDefault="00EF42E0" w:rsidP="00EF42E0">
<w:pPr><w:pStyle w:val="Heading1"/>
</w:pPr><w:bookmarkStart w:id="0" w:name="_Toc212523610"/>
<w:r>
<w:t>Summary</w:t>
</w:r>
<w:bookmarkEnd w:id="0"/>
</w:p>
<w:p w:rsidR="00EF42E0" w:rsidRDefault="00EF42E0" w:rsidP="00EF42E0"><w:pPr><w:pStyle w:val="mainbodytext"/><w:ind w:right="-694"/><w:rPr><w:b/><w:bCs/></w:rPr></w:pPr><w:r><w:rPr><w:b/><w:bCs/></w:rPr><w:t>What is the Group Defined Practice for Integrity Management?</w:t></w:r></w:p>
<w:p w:rsidR="00EF42E0" w:rsidRDefault="00EF42E0" w:rsidP="00EF42E0"><w:pPr><w:pStyle w:val="mainbodytext"/></w:pPr><w:r><w:t xml:space="preserve">This Practice is derived from the GP Group …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 xml sql-server

8
推荐指数
1
解决办法
987
查看次数

删除假设索引

过去,我认为我已经使用 DROP INDEX 语句用于聚集索引和 DROP STATISTICS 语句用于非聚集索引来删除假设索引。

我有一个数据库,里面满是我想要清理的 DTA 残余;但是,当我尝试删除对象时,我总是收到一个错误,告诉我我无法删除该对象,“因为它不存在或您没有权限”。我是服务器上的完整系统管理员,因此希望有权做任何事情。

我已经用 DROP STATS 和 DROP INDEX 语句尝试过这个,但都给了我同样的错误。

有没有人以前删除过这些,是否有我遗漏的技巧?


附录

仔细研究一下,我只是注意到如果我在对象上单击鼠标,“脚本为”和“删除”选项都变灰了。

index sql-server-2008 sql-server database-tuning-advisor

8
推荐指数
1
解决办法
5591
查看次数

XML 列的 IN 和 NOT IN

我有一个带有 xml 列的表。XML类似于

<Root>
  <Row>
    <user>abc</user>
    <Rowid>1</Rowid>
  </Row>
  <Row>
    <user>vf</user>
    <Rowid>2</Rowid>
  </Row>
  <Row>
    <user>ert</user>
    <Rowid>3</Rowid>
  </Row>
  <Maxrowid>3</Maxrowid>
</Root>
Run Code Online (Sandbox Code Playgroud)

现在下面的查询返回 sl_no 列和包含 xml 列的行的 myxmlcolumn 在节点 'user'() 中具有值 'abc' 或 'xyz'。下面的查询我使用类似于 sql 的 IN 选项。

SELECT
    [mytable].[Sl_no],
    [mytable].[myxmlcolumn]
    FROM [mydb].dbo.[mytable]
    WHERE
        [myxmlcolumn].exist('for $x in /Root/Row where (($x/user[fn:upper-case(.)=(''ABC'',''XYZ'')])) return $x') > 0
Run Code Online (Sandbox Code Playgroud)

我想要类似的查询,它与 sql 'NOT IN' 做同样的工作。在我的情况下,我希望在 xml 列中的节点“user”() 中没有值“abc”或“xyz”的行。所以请帮我解决这个问题。

xml sql-server sql-server-2008-r2 xquery

8
推荐指数
1
解决办法
326
查看次数

聚集索引压缩与表压缩 - 它们是一回事吗?

如果我在表的聚集索引上设置压缩(页或行),这与在表上设置压缩相同吗?

SQL Server 为两者提供了选项,这表明它们是不同的,但我的印象是聚簇索引和表本质上是同一件事,我对聚簇索引如何工作的心理模型告诉我压缩聚簇索引还必须压缩表。

sql-server sql-server-2008-r2 compression

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

SQL 和聚合问题

有了这个查询:

SELECT SUM(qty) AS sumQty,
       cnetprodid
FROM   quoteitem
WHERE  ordered = 1
       AND sageSOPOrderReturnLineID IS NOT NULL
       AND LEN(LTRIM(RTRIM(cnetprodid))) > 0
       AND cnetprodid LIKE 'S%'
       AND price > 10
       AND created > DATEADD(MONTH, -3, GETDATE())
GROUP  BY cnetprodid
ORDER  BY SUM(qty) DESC 
Run Code Online (Sandbox Code Playgroud)

每个产品我得到一排,顶排有 294 个 assumQty和 'S10381902' 作为cnetprodid

输入此查询:

SELECT SUM(qty) AS sumQty,
       p.ProdID,
       p.CatID
FROM   quoteitem
       INNER JOIN cds_prod AS p
         ON p.ProdID COLLATE Latin1_General_CI_AS = cnetprodid
       INNER JOIN cds_atr AS a
         ON a.ProdID COLLATE Latin1_General_CI_AS …
Run Code Online (Sandbox Code Playgroud)

sql-server aggregate t-sql

7
推荐指数
1
解决办法
149
查看次数