标签: sql-server-2005

如何在不安装新实例的情况下更改 MS SQL 2005 中的实例名称?

我有一个实际上什么都没有的实例,它只是被安装了(它是为一个项目设计的,但实际上从未在这台服务器上完成,该项目在另一台服务器上重复完成)所以自从我有了这个实例,我想重命名它。

这能做到吗?我该怎么做?


进一步调查(谷歌搜索)说这不太可能。与我的同事的额外咨询说我不妨安装一个 2k8 实例并继续。

sql-server-2005 instance

13
推荐指数
1
解决办法
6953
查看次数

SQL Server 性能突然下降

我有一个最近变得不可预测的 SQL Server 2005,我正在摸索为什么。在几秒钟内执行的查询正在更改计划并花费几分钟(在全表扫描或索引假脱机中花费时间)。现在第一个也是最明显的事情是,统计数据已经过时导致优化器感到困惑,但我相信事实并非如此 - 首先是因为基础数据没有显着变化(例如,在一年的数据之上添加一天的数据已经在表中),其次是因为自动创建统计和自动更新统计都是真的。然而,优化越来越困惑;在 Tuning Advisor 中运行 SQL 给了我很多CREATE STATISTICS似乎可以修复它的多列语句(直到 SQL 的下一个错误行为)。

我可以用来解决根本原因的任何策略想法吗?为什么“正常”统计数据还不够?

performance sql-server-2005

13
推荐指数
2
解决办法
1万
查看次数

SQL Server Express Edition 是否支持 CLR 过程?

SQL Server Express Edition(2005 和 2008)是否支持安装、启用和运行 CLR 存储过程和函数。

sql-server-2005 sql-server-2008 sql-server sql-server-express sql-clr

13
推荐指数
1
解决办法
5852
查看次数

SQL Server 2005/8 查询优化提示

我正在考虑教育一个团队编写更好的 SQL Server 查询,并想知道人们对提高性能的最佳提示是什么。

例如,我曾经有一个 DBA,他坚持认为 count(*) 的性能会比 count(1) 差(我不知道她是否正确,或者它是否仍然适用于最新的查询优化器)。

我应该告诉团队尝试并始终使用或避免哪些简单的事情?理想情况下,我正在寻找 (a) 可能产生合理差异和 (b) 直截了当的事情,1 - 2 行说明。

sql-server-2005 sql-server

13
推荐指数
1
解决办法
248
查看次数

INSERT 临时表和表变量之间的性能差异

我在 SQL Server 2005 中遇到以下问题:与使用临时表的相同插入相比,尝试将一些行插入表变量需要大量时间。

这是插入表变量的代码

DECLARE @Data TABLE(...)
INSERT INTO @DATA( ... )
SELECT ..
FROM ...
Run Code Online (Sandbox Code Playgroud)

这是插入临时表的代码

CREATE #Data TABLE(...)
INSERT INTO #DATA( ... )
SELECT ..
FROM ...
DROP TABLE #Data
Run Code Online (Sandbox Code Playgroud)

临时表没有任何键或索引,2次查询的select部分相同,select返回的结果数为~10000行。单独执行选择所需的时间约为 10 秒。

执行临时表版本最多需要 10 秒,我不得不在 5 分钟后停止表变量版本。

我必须使用表变量,因为查询是表值函数的一部分,不允许访问临时表。

表变量版本的执行计划 执行计划

临时表版本的执行计划 执行计划

performance sql-server-2005 temporary-tables

13
推荐指数
1
解决办法
9610
查看次数

如何从字符串中去除非数字字符?

用户在一个框中输入一个搜索词,该值被传递到一个存储过程,并根据数据库中的几个不同字段进行检查。这些字段并不总是具有相同的数据类型。

一个字段(电话号码)由所有数字组成,因此在检查它时会使用 .Net CLR 函数从字符串中去除所有非数字字符。

SELECT dbo.RegexReplace('(123)123-4567', '[^0-9]', '')
Run Code Online (Sandbox Code Playgroud)

问题是,此功能有时会突然停止工作,并出现以下错误:

Msg 6533, Level 16, State 49, Line 2
AppDomain MyDBName.dbo[runtime].1575 被升级策略卸载,以确保 
应用程序的一致性。访问关键资源时发生内存不足。
System.Threading.ThreadAbortException:类型异常 
'System.Threading.ThreadAbortException' 被抛出。
System.Threading.ThreadAbortException: 

我已经尝试了MSDN 上针对此错误发布的建议,但仍然遇到问题。目前,切换到 64 位服务器不是我们的选择。

我知道重新启动服务器会释放它拥有的任何内存,但这在生产环境中不是一个可行的解决方案。

有没有办法仅使用 T-SQL 从 SQL Server 2005 中的字符串中去除非数字字符?

sql-server-2005 sql-server t-sql

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

镜像 - 无法访问服务器网络地址

我安装了 SQL Server 2008 R2。它包含三个实例。

  1. 默认 (MSSQLServer)
  2. 第一个例子
  3. 第二审

所有这些都是作为网络服务登录..

默认实例是主体服务器第一个实例是镜像第二个实例是见证服务器

我最初对我的主体数据库进行了完整备份和事务日志备份。通过保持相同的数据库名称将其恢复到第一个实例,恢复状态为无恢复

最后,我启动了镜像,并收到如下所示的两条错误消息。

在此处输入图片说明

在此处输入图片说明

sql-server-2005 sql-server-2008 sql-server mirroring

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

ETL:从 200 个表中提取 - SSIS 数据流或自定义 T-SQL?

根据我的分析,我们数据仓库的完整维度模型需要从 200 多个源表中提取。其中一些表将作为增量加载的一部分提取,而其他表将作为完整加载。

需要注意的是,我们有大约 225 个具有相同架构的源数据库。

据我所知,在 SSIS 中构建一个带有 OLE DB 源和 OLE DB 目标的简单数据流需要在设计时确定列和数据类型。这意味着我最终会得到 200 多个数据流,仅用于提取。

从可维护性的角度来看,这对我来说是一个大问题。如果我需要对提取代码进行某种彻底的更改,我将不得不修改 200 个不同的数据流。

另一种选择是,我编写了一个小脚本,用于读取我想从一组元数据表中提取的源数据库、表名和列。代码在多个循环中运行,并使用动态 SQL 通过链接服务器和 OPENQUERY 从源表中提取。

根据我的测试,这仍然不如使用带有 OLEDB 源和目标的 SSIS 数据流快。所以我想知道我有什么样的选择。到目前为止的想法包括:

  1. 使用EZAPI以编程方式生成具有简单数据流的 SSIS 包。要提取的表和列将来自前面提到的相同元数据表。
  2. 购买第 3 方软件(动态数据流组件)

解决这个问题的最佳方法是什么?当谈到 .NET 编程时,我是一个初学者,所以仅仅学习基础知识所需的时间也是一个问题。

sql-server-2005 data-warehouse sql-server etl ssis

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

有没有人在实践中使用过 sqlcmd 模式?

SQLServer 2005 引入了称为SQLCMD 模式 msdn 链接的东西 。

乍一看,这种模式从命令行批处理文件中添加了变量替换,还有一些转义到操作系统命令。

此功能是否在您的环境、生产或测试中使用?

sql-server-2005 ssms sqlcmd

12
推荐指数
1
解决办法
1039
查看次数

如何更改触发器的触发顺序?

我真的很少使用触发器。所以我第一次遇到了一个问题。我有很多带有触发器的表(每个表有 2 个或更多)。我想知道并更改每个表的触发顺序。是否有可能获得这些信息?

添加:

这是我发现的关于 mssqltips 的一篇很好的文章

trigger sql-server-2005 sql-server-2008

12
推荐指数
3
解决办法
3926
查看次数