Articles of sql server

MSSQL 2008R2:幻像索引更新

我试图运行以下查询: Update A SET A.Col1 = B.Col1, … A.ColN = B.ColN FROM A INNER JOIN B ON (A.Col1 = B.Col1) WHERE B.Col2 = X AND (A.Col1 <> B.Col1 OR … OR A.ColN <> B.ColN) 该查询在其更新中仅影响4700行(和7列)。 但是它需要花费10多分钟,并阻止来自其他许多表的多个其他用户。 我检查了查询计划,并且不less于12个索引因此查询而更新。 我知道遗留数据库是overindexed。 这不是我现在的问题。 我的问题是这样的:被更新的索引中的7个(以及3个最昂贵的索引)不是来自表A或表B.我已经检查了表上的所有触发器,并且它们中没有一个导致对另外两个表正在更新。 这怎么可能发生? 有什么机制可以导致这些幻影更新?

如何从SQL表中导出/备份数据,向表中添加一个可为空的列并导入/恢复数据?

我想要做以下… 从我当前的数据库表中备份或导出数据 使用新的可为空的列重新部署(删除并创build)我的数据库 将所述数据还原或导入数据库。 这可能使用MSSQL? 如果是这样,怎么样?

如何configuration访客操作系统的SQL Server访问?

在主机操作系统上configurationSQL Server的最佳方法是什么,以便客户操作系统可以访问它,但在主机操作系统之外是不可用的? 我正在使用VirtualBox托pipe来宾操作系统。

sqlsrv没有显示在我的phpinfo

我刚刚在运行IIS7的Windows Server 2008 R2上安装了php 5.3。 phpinfo()工作正常。 现在我想看看我是否正确安装了用于SQL Server的Microsoft驱动程序。 我从这里下载: http : //www.microsoft.com/downloads/en/details.aspx?FamilyID=80E44913-24B4-4113-8807-CAAE6CF2CA05#RelatedResources 我已经把2个DLL(php_pdo_sqlsrv_53_nts_vc9.dll和php_sqlsrv_53_nts_vc9.dll)放到了PHP \ ext文件夹中,并在php.ini中引用了它们,我重新启动了服务器。 但是,当我运行phpinfo()我没有看到任何引用sqlsrv是正常的? 还是应该有一个专门用于这些sqlsrv扩展的phpinfo()部分? 错误日志logging是打开的,但是在涉及到sqlsrv的php-errors.log中没有出现错误。 已经添加php_pdo_sqlsrv_53_nts_vc9.dll和php_sqlsrv_53_nts_vc9.dll文件(非线程安全版本的IIS),php5.dll存在于php安装文件夹中。 感谢任何指针。

SQL Server 2005 SP3快速备份的速度令人难以置信

我试图解决与使用SQL Server 2005 SP3 Express来存储应用程序数据的客户之间的问题。 我们在升级应用程序时执行的自动备份将在30分钟后超时,而我一直坐着观看备份在SSMS中进行了大约20分钟,现在只有30%。 数据库只有略高于1GB,所以我很困惑什么可能导致这种可怕的performance。 该机器是1.87GHz Xeon,运行Windows Server 2003 R2的3GB内存。 虽然这不是一个强大的框,这似乎是可笑的。 有没有人知道为什么这些备份可能会花费这么长时间,更重要的是,我该怎么做呢?

SQL维护清理任务'成功'但不能删除文件

我有一个服务器上的数据库维护计划设置。 作为备份的一部分是维护清理任务。 SQL版本2008 “成功”的任务设置为: Delete backup files Correct folder (same address as the backup task) File extension: bak (NOT .bak) Delete files older than: 20 Hour(s) 我有其他类似的清理任务,发生在相同的维护计划,工作正常。 这个计划过去运作良好,我刚才注意到昨天晚上报“成功”,其余的计划还在继续,不过2天前的档案仍然存在。 我检查了类似的问题,例如这个问题 ,事实并非如此,因为我的维护任务在两天前和过去几周都运行良好:

SQL服务器安全性

有5种login失败后lockinglogin进程的方法吗? 或者,也许减慢到20秒的差距,直到另一个login? 我可以看到很多尝试直接连接到我的MS SQL服务器。 谢谢。

MS SQL Server 2000 IPv6

有谁知道SQL Server 2000是否支持IPv6? 我做了一些search,但我没有find任何文件。

如何最好从旧的SQL 2000服务器迁移到具有新名称的新的SQL 2008服务器

我们有一个旧的SQL 2000服务器,我们称之为“oldSQL2K”和一个新的SQL 2008服务器,我们称之为“newSQL2K8”。 两者都在生产。 oldSQL2K上有大约90个用户数据库,可以通过ODBC连接进行访问,也可以通过SQLlogin进行访问。 我正在寻求如何最好地将数据库从oldSQL2K迁移到newSQL2K8的build议。 我通过旧的SQL备份和新的SQL还原手动迁移了大约十几个数据库。 我已经将所有的SQL日志从旧迁移到新的,这样就完成了。 作为一个实验,我尝试了一个简单的DNS名称更改,但当然失败了。 以下是挑战:我们支持“必须保持活力”的遗留应用程序之一是将oldSQL2000服务器名称烘焙到编译后的代码中,并且源代码不见了! 长话短说,不是我的错,但现在我的问题。 这个程序在大约50个工作站上运行。 我们的服务中心已经确定了大约1000个工作站将受到这种迁移的影响。 噢。 我们在所提到的50个工作站上都​​有SQL客户端networking实用程序,并且可以在此处使用别名。 在其他工作站和服务器上安装它虽然是我想尽可能避免的。 所以人们,如果是你,你将如何进行这个迁移?

非SAangular色恢复数据库?

如果我正确地阅读联机丛书,用户可以恢复现有的数据库,如果他们是该数据库的DBO; 实际的话是: 如果还原的数据库不存在,则用户必须具有CREATE DATABASE权限才能执行RESTORE。 如果数据库存在,则RESTORE权限默认授予sysadmin和dbcreator固定服务器angular色的成员以及数据库的所有者(dbo)(对于FROM DATABASE_SNAPSHOT选项,数据库始终存在)。 不幸的是,这似乎并不完全正确,或者我错过了一个微妙的东西。 对于特定的数据库,我试图让这个工作,但是当用户做一个RESTORE FILELISTONLY来获取备份文件中的文件,我们得到的错误: Msg 262, Level 14, State 1, Line 1 CREATE DATABASE permission denied in database 'master'. Msg 3013, Level 16, State 1, Line 1 RESTORE FILELIST is terminating abnormally. 这是一个有点混乱的错误信息,因为在这一点上,我们所做的只是读取备份文件,而不是创build,甚至还原现有的数据库。 所以我只能假设SQL Server在允许任何RESTORE命令执行之前尝试执行权限检查。 现在BOL没有提到任何额外的权限需要,所以我想知道哪个是正确的,或者我错过了文本中的微妙。 虽然我不怀疑错误消息的准确性,但是我真的需要做些什么才能让数据库的db_owner用户能够恢复数据库,而不必提升他们的权限?