Articles of sql

在SQL Server中恢复数据库时,不能覆盖mdf文件

我有一个数据库A.它有一些数据。 我为A.bak文件创build了一个备份。 然后我创build一个新的空数据库B.然后我尝试从A.bak恢复B. 但是,SQL服务告诉我以下错误: 文件“C:\ SQL目录\ DATA \ A.mdf”不能被覆盖。 它正在被数据库'A'使用。 但是,如果我从SQL Server中删除A,则retore可以。 我不明白为什么SQL需要写入原始数据库文件,而从一个单独的备份文件恢复? 谢谢〜

如何查看SQL Server许可证

我知道有三种SQL许可证: http : //www.microsoft.com/sqlserver/2005/en/us/pricing-licensing-faq.aspx SSMS中是否有对话框,sproc,registry项等,我可以在服务器上查看以确定许可证的types和数量? 谢谢

是否有一个MySQL性能基准来衡量utf8_unicode_ci与utf8_general_ci的影响?

我在这里和那里读到,使用utf8_unicode_cisorting规则可以更好地处理unicode文本(例如,它知道如何将字符扩展为“oe”以进行search和sorting),与默认的utf8_general_ci相比,变音符号。 不幸的是,这两个来源都表明utf8_unicode_ci比utf8_general_ci稍慢。 所以我的问题是:“略慢”是什么意思? 有没有人运行基准? 我们是在谈论一个-0.01%的performance影响,或者更像是-25%? 谢谢你的帮助。

SQL Server浏览器:为什么它被禁用?

我试图通过SQL Serverconfigurationpipe理器启动SQL Server Browser。 但是,SQL Server浏览器的“状态”不仅stopped ,而且在“右键单击”上下文菜单和“属性”对话框中都禁用了“ Start ,“ Stop ,“ Pause ,“ Resume ”和“ Restart选项。 (另外,在“属性”对话框中,我已经尝试了“内置帐户”的所有3个选项:本地系统,本地服务和networking服务。我也尝试过“这个帐户”有各种选项。在所有情况下,仍然残疾。) 我最初认为这可能是一个端口问题。 显然,SQL Server浏览器使用端口1434.但是,使用一个名为CurrPorts的程序,我发现端口1434没有被任何程序使用。 谁能帮忙?

如何使用T-SQL获得SQL实例的最小和最大内存分配?

我正在pipe理大约90个SQL Server实例,并需要一个查询来确定为每个实例分配了多less内存。 请注意,我不是问如何设置它,只是为了查看它当前的设置,而不使用Management Studio。 谢谢你的帮助。

SQL Server 2005:没有足够的系统内存来运行此查询

我们的一个SQL服务器,运行稳定一段时间(几年),最近一直在抛出不足的内存错误。 从应用程序事件日志中,我们看到: 事件ID:701 说明:没有足够的系统内存来运行此查询。 我们pipe理这个服务器的团队主要由开发人员组成,这些开发人员在系统pipe理职责上倍增。 但是,我们的主要专长是发展。 这就是说,我们对如何解决这个问题感到茫然。 我们一直在search论坛,什么也没有find任何匹配的东西 所以,这里有一些更多的细节来帮助解决问题: 我们的最servlets器内存设置为0。 我们的最大服务器内存设置为2000。 总物理内存为3,325.85 MB(来自sysinfo)。 总虚拟内存为7.10 GB(来自sysinfo)。 我们没有使用AWE来分配内存,但现在我们来看看它是否有所作为。 此错误是由备份事务日志的作业引发的,未运行查询。 我们有很多链接的服务器。 另一方面,RDBMS的types是SQL Server(2005和2000),Oracle 10g和OSI PI系统。 这是间歇性的。 我们似乎无法将任何时间或事件与错误关联起来。 当然,重新启动似乎会让它消失一段时间,由于错误信息的性质,这是有意义的。 此服务器作为应用程序服务器(几个Windows服务)和Web服务器以及数据库服务器组成三元组。 编辑: 我们在SP3上。 我们发现的大部分post都是SP1以前的版本,不适用于我们。 SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') 回报 9.00.4035.00 SP3标准版

无法使用“sa”帐户连接到SQL Server,我错过了什么?

我正在尝试使用以下命令login到SQL Server 2005 Express实例: osql -S .\INSTANCE -U sa -P password 我得到错误: 用户'sa'的login失败。 我可以使用-E开关连接好。 我必须补充说它已经工作了好几个月了。 我觉得有人改变了一些东西,但是我弄不清楚是什么东西。 这是我试过的: 使用Windows身份validationlogin并更改sa密码: sp_password NULL,newpassword,'sa' 启用“sa”login: ALTER LOGIN sa ENABLE; 使用密码='newpassword'进行更改loginsa; 走 检查Windowsregistry以确保混合身份validation已启用。 值是正确的: LoginMode = 2 我还应该检查什么? 提前致谢。 附加信息: 这是一个Windows 2003 Server。 他们已经启用了一些密码策略,我记得我需要更改我的应用程序在将SQL Server安装到另一个更复杂的时候使用的默认“sa”密码。 我使用VNC连接,所以我不能真正使用SSMS 我的应用程序可以使用另一个SQL Serverlogin连接,但没有“sa” 最后,如果我们找不到解决scheme,我将删除此实例并重新安装,但我真的很想知道问题所在。 以防万一它再次发生,只是为了纯粹的好奇心。

我如何区分两个Oracle 10g模式?

我感觉两个大型复杂的Oracle模式应该是完全相同的,所以决定抛弃和区别它们来调查。 我find了一个文章( http://www.dba-oracle.com/art_builder_get_schema_syntax.htm ),它提供了以下命令来转储表和索引定义。 SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u; SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u; 然而,当我倾倒和分析输出模式的线轴时,几乎每条线上都有微不足道的差异,导致差异毫无价值。 例如,模式名称包含在每个表格定义中。 有没有更好的方法来做到这一点,将以一种可以使用diff工具轻松比较的格式给出最重要的模式数据。 我对表,索引和触发器感兴趣。 我正在使用Oracle数据库10g企业版版本10.2.0.3.0

担心重组或重build索引的DBA可能会导致数据丢失?

我们有一些索引碎片大于95%的数据库。 尽我所能说,索引从来没有被重build得less得多。 多年以来 (公平地说,这些表似乎具有自动更新的统计function,公平地说,他正在努力进行备份:每天全天和每小时trx日志。) 当我问到时,DBA说他不愿意重build或重组索引。 当我问到为什么时,他无法真正expression出来。 最终他表示担心潜在的数据丢失。 例如,我们的Great Plains Dynamics会计应用程序使用了其中一个数据库,他似乎对此非常担心。 我不是DBA,但是从我读过的内容来看,他的焦虑似乎让我难以理解。 我不知道下一步该做什么。 build议我应该如何进行?

删除SQL Server中的LOB数据的性能

这个问题涉及到这个论坛主题 。 在我的工作站上运行SQL Server 2008 Developer Edition,并在Enterprise Edition双节点虚拟机群集中引用“alpha群集”。 使用varbinary(max)列删除行的时间与该列中数据的长度直接相关。 这听起来可能听起来很直观,但经过调查后,它与我对SQL Server如何实际删除一般行并处理这种数据的理解相冲突。 问题源于我们在.NET Web应用程序中看到的删除超时(> 30秒)问题,但是为了讨论的缘故,我简化了它。 当logging被删除时,SQL Server将其标记为ghost,在事务提交之后的一段时间内被Ghost Cleanup Task清理掉(参见Paul Randal的博客 )。 在testing中,分别在varbinary(max)列中删除三行,分别为16 KB,4 MB和50 MB数据,我在页面上看到这种情况发生在数据的行内部分以及事务login。 我觉得奇怪的是,在删除过程中,X锁被放置在所有的LOB数据页上,并且页在PFS中被释放。 我在事务日志以及sp_lock和dm_db_index_operational_stats DMV( page_lock_count )的结果中看到了这一点。 这会在我的工作站和我们的alpha群集上创build一个I / O瓶颈,如果这些页面不在缓冲区caching中的话。 实际上,来自同一个DMV的page_io_latch_wait_in_ms实际上是整个删除的持续时间, page_io_latch_wait_count与locking页面的数量相对应。 对于我的工作站上的50 MB文件,当空缓冲区caching( checkpoint / dbcc dropcleanbuffers )开始时,这将转换为3秒以上,并且我毫不怀疑,对于繁重的碎片和负载,时间会更长。 我试图确定,这不仅仅是在caching中分配占用空间的空间。 在执行删除操作之前,我从其他行读取了2 GB的数据,而不是分配给SQL Server进程的checkpoint方法。 不知道这是否是一个有效的testing,因为我不知道SQL Server如何洗牌数据。 我认为它会一直推出新的赞成新的。 此外,它甚至不修改页面。 这我可以看到与dm_os_buffer_descriptors 。 删除后的页面是干净的,而对于所有三个小的,中等的和大的删除,修改的页面的数量都小于20。 我还比较了DBCC PAGE输出以查找查找页面的样本,并且没有任何更改(仅从PFS中删除了ALLOCATED位)。 它只是释放他们。 […]