Questions tagged «sql-server-2008»

SQL Server 2008(主要版本10.00.xxxx)。请同时用sql-server标记。



2
聚集索引和非聚集索引之间的性能差异
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 7年前。 我正在阅读Clustered和Non Clustered Indexes。 Clustered Index-它包含数据页。这意味着完整的行信息将出现在“聚簇索引”列中。 Non Clustered Index-它仅包含“聚簇索引”列(如果可用)或“文件标识符+页码+页面中的总行数”形式的行定位器信息。这意味着查询引擎必须采取其他步骤才能找到实际数据。 查询 -如何检查的性能差异与实际例子的帮助,因为我们知道,表只能有一个Clustered Index,并且提供sorting在Clustered Index Column和Non Clustered Index不提供sorting,可支持999 Non Clustered Indexes中SQL Server 2008,并在249 SQL Server 2005。

3
在大型表上创建聚集索引的无痛方法?
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 7年前。 因此,我们有一个客户站点抱怨性能严重下降。我看了一眼,很明显,问题出在因为Somebody Else(grrrr)设计了一个表,该表包含大约2000万条记录而没有聚簇索引。 现在,我想在该表上创建聚簇索引-但是在我的测试环境中,我的create index命令已经运行了一个小时,但仍未完成。客户站点是一个工作日为24/7的车间,在创建索引时无法承受一个小时的停机时间。 是否有一些不那么费力的方法来创建索引,该索引要么可以快速完成工作,要么以某种聪明的方式完成工作,而这种忙碌的工作不会完全破坏服务器的性能? 我们正在使用SQL Server企业版。

4
将结果限制在前2个排名行中
在SQL Server 2008中,我RANK() OVER (PARTITION BY Col2 ORDER BY Col3 DESC)用来返回带有的数据集RANK。但是我每个分区都有数百条记录,因此我将从1、2、3 ...... 999列中获取值。但我只希望RANKs每个最多2 个PARTITION。 例: ID Name Score Subject 1 Joe 100 Math 2 Jim 99 Math 3 Tim 98 Math 4 Joe 99 History 5 Jim 100 History 6 Tim 89 History 7 Joe 80 Geography 8 Tim 100 …


2
关于何时使用非DBO模式与新数据库的决策标准
我主要是一名应用程序开发人员,但发现自己必须为当前项目(顺便说一下... MS SQL Server 2008)做所有的前期数据库工作。作为第一个决定,我试图确定是使用单独的数据库还是在同一数据库中使用单独的架构划分状态。我已经阅读了一些有关SQL Server Schema的文章,这似乎是分离对象域的一种自然方法(我喜欢),但是我不确定这种模式是否存在隐性成本。 在这两种方法之间进行选择时,我应该考虑哪些更实际的事情?如果我避免dbo.mytable赞成,myschema.mytable会为我的体系结构带来其他挑战(或问题)吗? 附带说明。。。在某些时候,这将移交给真正的 DBA进行维护/支持,因此,我试图确保自己的生活不会更加艰难。

8
为什么应用程序不使用sa帐户
我的第一个问题,请保持温柔。我知道sa帐户可以完全控制SQL Server以及所有数据库,用户,权限等。 我绝对相信,没有完善的,以业务人员为中心的原因,应用程序不应使用sa密码。这个问题的答案包括我针对IT讨论的很多理由 我被迫接受一个新的服务管理系统,该系统除非使用sa密码,否则将无法正常工作。我从来没有时间弄清楚为什么要设置评估,但是服务器团队试图将其安装为使用我设置的固定角色,其中包含db_creater和我认为需要的其他权限。失败了。然后,我让服务器团队使用sa帐户进行安装,但在其数据库的dbo角色下以一个帐户运行,但这也失败了。很可惜,我试图用sysadmin角色的帐户来运行它,但是即使失败了,也没有出现有用的错误消息,这些错误消息使我能够确定正在发生的事情而无需花费更多的时间。它仅适用于sa帐户和以明文形式存储在配置文件中的密码。 当我对此进行查询时,服务器团队与供应商进行了交谈,他们得到了一个令人担忧的答案:“这是什么问题?” 然后“好吧,我们可以看看加扰密码” 我知道有一些方法和手段可以限制对文件的访问,但是我认为这只是安全性的另一个弱点 无论如何,我的问题是,有人可以向我指出一些文档,我可以用来向企业解释这是一件坏事的原因,应该是很大的不。我在一个领域工作,这意味着我需要认真对待安全性,并且一直在努力使业务理解,最终无论如何它可能都超出了排名,但是我需要尝试。

5
有人在生产中使用HierarchyId吗?它可靠吗?
是否有人在实际生产中使用HierarchyId,并且表的大小合理,有几千行?它可靠/性能好吗?到目前为止,我还没有发现任何与该供应商无关的人推荐它,Paul Nielsen 在此建议不要这样做。 您在实际生产系统中使用HierarchyId有什么经验? 在选择HierarchyId替代方案时使用了哪些条件?

8
“即使在MS SQL Server Management Studio中创建了存储过程,也找不到存储过程”
我testtable在数据库内部创建了一个testbase具有以下结构的表: product_no (int, not null) product_name (varchar(30), not null) price (money, null) expire_date (date, null) expire_time (time(7), null) 我使用了Microsoft SQL Server 2008 Management Studio。 我创建了一个存储过程testtable_pricesmaller,如下所示 use testbase go create procedure testtable_pricesmaller @pricelimit money as select * from testtable where price = @pricelimit; go 并能够Object Explorer在Microsoft SQL Server Management Studio 上查看存储过程。(它在的以下树结构中列出Object …


3
禁止SQL Server Management Studio自动完成
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 7年前。 有没有办法在键入查询时临时禁止SQL Server Management Studio的自动完成?我不想完全禁用自动完成功能,而只是说在输入特定单词时按住某些键,以免妨碍自动完成功能。 例如说我有以下查询 SELECT Foo, Foo2 FROM SomeTable 作为I型Foo,然后打空格键SQL Server Management Studio中的自动完成踢并完成Foo对FooBar。

3
如何以最少的停机时间将rowversion列添加到大型表
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 7年前。 使用SQL Server 2008和更高版本时,我想将rowversion列添加到大型表中,但是当我只是 ALTER TABLE [Tablename] ADD Rowversion [Rowversion] NOT NULL 然后,该表无法用于更新太长时间。 我可以使用哪些策略来减少停机时间?我会考虑的。当然,越简单越好,但是我会考虑任何策略。 我的想法是,作为最后的选择,我可以维护一个由触发器维护的副本登台表,然后将登台表sp_rename重命名为原始表。但我希望有一些更简单/更轻松的方法。



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.