Questions tagged «sql-server-2008»

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

3
where子句中的列顺序应该与索引顺序相同吗?
我正在阅读use-the-index-luke.com,其中详细说明了索引的工作方式。该人员再次重申的一件事是,索引的顺序非常重要,为了使查询快速,where子句列应与索引中的列相同。今天,我只是证实了这一理论,并在SQL Server 2008上创建了一个表(id int,名称nvarchar(100))。我在其中插入了约5000行并创建了一个索引 create index abc on test (name, id ) 并触发了查询 select ID, name from test where ID = 10 and name = '10' 我原本希望在查询计划中进行全表扫描,然后再进行选择,但令我惊讶的是,计划的输出是选择所跟随的索引扫描。 因此,我的问题是Where子句中的列顺序很重要还是SQL Server根据索引定义重新排列了它们? 谢谢 !!


2
SQL Server 2008:登录名来自不受信任的域,不能与Windows身份验证一起使用
这里的问题不同于1和2 当尝试连接到网络中另一个系统上的SQL Server数据库时,两者都在工作组中,当尝试使用带有Windows身份验证的SQL Server Management Studio连接到SQL Server 2008实例时,我就连接了。 但是当尝试从我的应用程序连接时,出现以下错误 (登录失败。登录名来自不受信任的域,不能与Windows身份验证一起使用。)Native = 18452)。 如果SQL Server Management Studio可以连接,我的应用程序要连接需要什么?

2
重建索引的功能是什么?
我在IT世界中还很年轻,并且每天都在学习。我刚开始使用SQL数据库,但有很多基本问题。 特别是其中之一,重建索引的功能是什么?我尚未通过Google找到一个好的答案。 任何反馈表示赞赏。

2
非聚集索引-键和非键
我只想确保我在这些概念上走的正确,所以任何反馈将不胜感激。 这是我根据刚刚经过优化的查询通过反复试验并阅读MSDN文档而得出的理论。 查询 DECLARE @pic_id int SET pic_id = 1 SELECT ROW_NUMBER() OVER (ORDER BY pic_date desc) AS row_num, * FROM tbl_pics WHERE deleted = 0 AND map_id = 1 AND (hidden = 0 OR pic_id = @pic_id) 索引 CREATE NONCLUSTERED INDEX [IX_tbl_pics] ON [dbo].[tbl_pics] ( [map_id] ASC, [deleted] ASC, …

1
SQL Server作业历史记录在5天后消失
我觉得这是一个愚蠢的问题,但是对于我自己的一生,我无法追踪正在发生的事情。我刚刚接管了几台服务器的管理,在所有这些服务器上,作业历史记录仅保留了5天。有一个清理维护计划,但计划保留5周。 EXEC msdb.dbo.sp_syspolicy_purge_history每天运行一次,但是,“历史记录保留天数”设置为0,因此我的理解是它什么也不做。 我在这里一定缺少一些非常简单的东西。谁能指出我正确的方向?


2
SQL Server 2008 FileStream的最大行数
我们使用文件流中的Microsoft SQL Server 2008(SP2) - 10.0.4000.0(X64)和Windows Server 2008存储数百万文件。由于有数百万个文件,所有文件都被分组为100个文件组,并依次一个接一个地插入另一个文件组。现在,每个文件组中大约有1.5万个文件,预计很快会增长到2万个文件。所以我们想知道一个文件组必须具有最大行数限制才能达到最佳性能,或者在操作系统侧是否存在最大行数限制以达到最佳性能,因为我们要在单个文件夹中存储或存储约20K个文件? 对正确资源的任何建议也将非常有帮助。 我有一个指向msdn博客的链接,其中指出 4.检查FILESTREAM目录容器是否单独包含不超过300,000个文件,因为NTFS性能下降可能是一个问题,尤其是在启用8.3文件名生成时。 Msdn博客链接 谢谢。


3
逻辑读取与扫描计数
我要在SQL Server 2008中将一个小表(1,000行)与一个大表(8M行)连接起来。该连接在大表上使用非聚集覆盖索引,并且该连接可以产生三种可能的查询计划。我试图找出哪种计划更好,但我也想对此知识进行概括,以便下次在查看SQL I / O统计信息时可以更好地了解要使用的启发式方法。 计划#1是一个循环联接,并为大型表发出统计信息,如下所示: Scan count 2582, logical reads 35686, physical reads 1041, read-ahead reads 23052 计划2是合并联接,并发出如下统计信息: Scan count 1, logical reads 59034, physical reads 49, read-ahead reads 59004 计划3是哈希联接,并发出如下统计信息: Scan count 3, logical reads 59011, physical reads 5, read-ahead reads 59010 覆盖率索引由排序(ID, Date)。查询返回大约50%的ID的数据,并且对于每个ID,返回最近3个月数据的连续块,通常为每个ID的大约1/4或行。该查询返回索引中总行的约1/8。换句话说,查询是稀疏的,但始终如此。 我的假设是,计划1对于这种工作负载而言是糟糕的,因为将磁盘头移动大约2500次(甚至是1,041次)比顺序进行磁盘扫描要昂贵得多。我还假定#3和#2具有相似的顺序I / O模式(因此效率更高)。 …

5
从Linux对SQL Server的脚本化命令行访问
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 4年前关闭。 难道一个现成的任何人都知道1个命令行工具,可以让我从Linux客户端连接到SQL服务器? 我希望能够运行任意查询,但是大多数时候我希望能够进行数据库转储然后还原它。 这必须是可编写脚本的,因为它将集成在自动构建环境中。 1 FYI:我的唯一选择就是写东西。我可能会使用perl和DBI

2
SSMS解决方案和项目的替代方案?
根据官方的SQL Server文档,不建议使用“解决方案,项目和项目”。MSDN页面顶部的明显(尽管有些隐晦)警告标语指出: “此功能将在将来的Microsoft SQL Server版本中删除。请避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。” 不幸的是,没有提供替代存储/容器策略的建议。那么,推荐用于存储和打包构成数据库应用程序的各种脚本,查询和文件的方法是什么?我也很想知道你们中的任何人在当前工作中是否正在使用解决方案或项目框架,以及它们的用途。 [注意:我意识到我可以使用VS2010来实现此功能,但是我对基于SSMS的方法很感兴趣(出于此问题的答案中所表达的原因)。


1
从SQL Server 2000到2008的事务复制
我在两台SQL Server 2000服务器上有旧数据库,这些数据库正尝试使用事务复制复制到SQL Server 2008 R2数据库。 2008服务器不在同一LAN中,因此我正在通过Internet复制。我创建了别名,以便每个服务器都可以按名称(为复制所必需)或多或少连接到其他服务器,如MohammedU(和其他用户)在此处所述:http : //social.msdn.microsoft.com/forums/en-US/ sqlreplication / thread / 9a8cf6b1-a449-4748-b3c2-1c13e2bfcc5b / 唯一的区别是,我使用客户端网络实用程序而不是Configuration Manager在SS2000计算机上创建别名。这似乎工作正常。 我设置了一个SS2000服务器,称为Distributor,作为这两个服务器的分发器。我已经在Distributor上成功创建了出版物,并使用推送订阅将其复制到SS 2008服务器,称为“订阅服务器”。 现在,我在第二台SS2000服务器上设置了出版物,将其称为Publisher。我以相同的方式为其创建了推送订阅。这些订阅不起作用。 在分发服务器上的复制监视器中,发布服务器上发布的分发代理具有以下错误消息: Error message: The process could not connect to Subscriber 'SUBSCRIBER' Error details: Login failed for user 'SUBSCRIBER\Guest.' (Source: SUBSCRIBER (Data source); Error number: 18456) 我还尝试在订阅服务器上创建请求订阅。该向导表示已成功创建它们,并且相应的分发代理正确显示在“分发服务器上的复制监视器”中,但是复制从未发生。代理不断显示一条消息,说明快照不可用,即使快照不可用。 有人可以帮忙吗?

1
为什么禁用SQL Browser服务?
我在安装我们的产品的软件安装包中遇到间歇性问题(使用InstallShield / InstallScript编写)。在安装过程中,我们重新启动SQL Browser服务。在大多数情况下,这可以正常工作。但是偶尔-我还没有弄清楚如何可预测地重现-服务无法重新启动,并且在我的“服务”管理器中发现服务状态设置为“已禁用”。 有什么想法会导致该服务被禁用,以及如何防止它发生?

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.