我一直在调查一系列程序的性能改进,最近有一位同事提到他在使用INNER JOIN代替EXISTS时取得了显着的性能提升。 作为调查的一部分,为什么这可能是我想我会问这里的问题。 所以: INNER JOIN可以提供比EXISTS更好的性能吗? 这会发生什么情况? 我怎样才能build立一个testing用例作为certificate? 你有进一步的文件有用的链接? 真的,任何其他的经验,人们可以带来这个问题。 如果有任何答案可以解决这个问题,而没有任何其他可能的性能改进的build议,我将不胜感激。 我们已经取得了一定程度的成功,而我只是对这个项目感兴趣。 任何帮助将非常感激。
我想在一个存储过程中执行一个存储过程,例如 EXEC SP1 BEGIN EXEC SP2 END 但是我只希望SP1在SP2完成运行后完成,所以我需要find一种方法让SP1在SP1结束之前等待SP2完成。 SP2正在作为SP1一部分执行,所以我有这样的东西: CREATE PROCEDURE SP1 AS BEGIN EXECUTE SP2 END
我如何从SQL Server中的用户定义的函数返回多个值(例如,一个数字和一个string)?
海家伙, 我已经使用了以下拆分function, CREATE FUNCTION dbo.Splitfn(@String varchar(8000), @Delimiter char(1)) returns @temptable TABLE (items varchar(8000)) as begin declare @idx int declare @slice varchar(8000) select @idx = 1 if len(@String)<1 or @String is null return while @idx!= 0 begin set @idx = charindex(@Delimiter,@String) if @idx!=0 set @slice = left(@String,@idx – 1) else set @slice = @String if(len(@slice)>0) insert […]
有没有一种方法来定义临时表,而无需事先定义它的模式?
我试图从一台服务器插入值到另一台服务器,我得到了错误: 消息7202,级别11,状态2,行1在sysservers中找不到服务器'SNRJDI \ SLAMANAGEMENT'。 执行sp_addlinkedserver将服务器添加到sysservers。
当涉及到创build存储过程,视图,函数等,最好做一个DROP …对象的CREATE或ALTER? 我已经看到许多“标准”文件说明做一个DROP …创build,但我已经看到许多支持ALTER方法的意见和论据。 ALTER方法保留了安全性,而我听说DROP … CREATE方法在第一次执行时强制重新编译整个SP,而不是仅仅重新编译一个语句级别。 有人可以告诉我,如果有其他的优势/劣势使用之一?
代码如下: ALTER PROCEDURE dbo.pdpd_DynamicCall @SQLString varchar(4096) = null AS Begin create TABLE #T1 ( column_1 varchar(10) , column_2 varchar(100) ) insert into #T1 execute ('execute ' + @SQLString ) select * from #T1 End 问题是,我想调用不同的过程,可以给不同的列。 因此,我将不得不一般定义表#T1。 但我不知道如何。 任何人都可以帮我解决这个问题吗?
我有一个SQL查询,查询一个巨大的数据库(如在数百个与难看的名字,如CMM-CPP-FAP-ADD)的数据库,我不需要也不想理解。 此查询的结果需要存储在登台表中以提供报告。 我需要创build登台表,但有数百个视图/表来挖掘,以find在这里表示的数据types,我不知道是否有更好的方法来构造这个表。 任何人都可以build议我将如何使用任何SQL Server 2008工具来在我的SQL 2000数据库中的源数据types的神圣? 作为一个通用的例子,我想从一个像这样的查询中知道: SELECT Auth_First_Name, Auth_Last_Name, Auth_Favorite_Number FROM Authors 而不是实际的结果,我想知道: Auth_First_Name is char(25) Auth_Last_Name is char(50) Auth_Favorite_Number is int 我对约束不感兴趣,我只是想知道数据types。
我需要能够获得SQL Server 2008中现有表的CREATE脚本 。 我假设我可以通过以某种方式查询sys.tables来做到这一点,但是这并没有将我的CREATE脚本数据返回给我。