Questions tagged «sql-server-2008»

使用此标记可以解决针对Microsoft SQL Server 2008版本的特定问题。

6
从Web调用存储过程较慢,从Management Studio快速调用
我存储的过程在每次从Web应用程序中调用时都会疯狂地超时。 我启动了Sql Profiler,并跟踪了超时的调用,最后发现了这些东西: 在MS SQL Management Studio中使用相同的参数执行语句时(实际上,我从sql概要文件跟踪复制了过程调用并运行了它):平均在5到6秒内完成。 但是,当从Web应用程序调用时,它花费了超过30秒的时间(在跟踪中),因此我的网页到那时实际上已超时。 除了我的Web应用程序有其自己的用户外,每件事都是相同的(相同的数据库,连接,服务器等),我还尝试了直接在Studio中与该Web应用程序的用户一起运行查询,并且该查询不超过6个秒 我如何找出正在发生的事情? 我认为这与我们使用BLL> DAL层或表适配器这一事实无关,因为该迹线清楚地表明延迟是在实际过程中进行的。这就是我能想到的。 我在此链接中发现EDIT,ADO.NET设置ARITHABORT为true-在大多数情况下都很好,但有时会发生这种情况,建议的解决方法是将with recompile选项添加到存储的proc中。就我而言,它不起作用,但我怀疑它与此非常相似。有谁知道ADO.NET还有什么功能,或者在哪里可以找到该规范?

9
哪个SQL查询更快?根据加入条件或Where子句过滤?
比较这两个查询。将筛选器放在连接条件或WHERE子句中是否更快。我一直觉得连接条件比较快,因为它会在最快的时候减少结果集,但是我不确定。 我将构建一些测试以供查看,但我也想就哪些内容也更易于阅读获得意见。 查询1 SELECT * FROM TableA a INNER JOIN TableXRef x ON a.ID = x.TableAID INNER JOIN TableB b ON x.TableBID = b.ID WHERE a.ID = 1 /* <-- Filter here? */ 查询2 SELECT * FROM TableA a INNER JOIN TableXRef x ON a.ID = x.TableAID AND a.ID = …

8
TSQL-如何在BEGIN .. END块内使用GO?
我正在生成一个脚本,用于将更改从多个开发数据库自动迁移到暂存/生产中。基本上,它需要一堆更改脚本,并将它们合并为一个脚本,然后将每个脚本包装在一条IF whatever BEGIN ... END语句中。 但是,某些脚本需要一条GO语句,例如,SQL解析器在创建新列后就知道该列。 ALTER TABLE dbo.EMPLOYEE ADD COLUMN EMP_IS_ADMIN BIT NOT NULL GO -- Necessary, or next line will generate "Unknown column: EMP_IS_ADMIN" UPDATE dbo.EMPLOYEE SET EMP_IS_ADMIN = whatever 但是,一旦将其包装在一个IF块中: IF whatever BEGIN ALTER TABLE dbo.EMPLOYEE ADD COLUMN EMP_IS_ADMIN BIT NOT NULL GO UPDATE dbo.EMPLOYEE SET EMP_IS_ADMIN …

14
在SQL Server中获得一周的第一天
我正在尝试按周对记录进行分组,将汇总日期存储为一周的第一天。但是,我用于四舍五入的标准技术似乎无法在几周内正常工作(尽管它适用于几天,几个月,几年,季度以及我应用过的其他任何时间范围)。 这是SQL: select "start_of_week" = dateadd(week, datediff(week, 0, getdate()), 0); 返回2011-08-22 00:00:00.000,这是星期一,而不是星期日。选择@@datefirstreturn 7,这是星期日的代码,据我所知,服务器已正确设置。 通过将上面的代码更改为: select "start_of_week" = dateadd(week, datediff(week, 0, getdate()), -1); 但是,我必须作例外处理的事实使我有些不安。另外,如果这是一个重复的问题,则表示歉意。我发现了一些相关的问题,但是没有一个问题专门针对此方面。

7
脚本整个数据库SQL-Server
有什么方法可以从数据库中获取所有表,proc和其他对象的脚本?我知道有一个脚本可以编写数据库脚本,但是它只给了我某种顶级脚本,当然不是一个用于创建所有表,proc,udfs等的脚本。




3
在t sql中是否包含StartsWith或包含变量的变量?
我正在尝试检测服务器是否正在运行Express Edition。 我有以下的T SQL。 DECLARE @edition varchar(50); set @edition = cast((select SERVERPROPERTY ('edition')) as varchar) print @edition 以我为例 @edition = Express Edition (64-bit) 我该怎么办?(受C#启发)。 DECLARE @isExpress bit; set @isExpress = @edition.StartsWith('Express Edition');

4
将varchar()列限制为特定值?
有没有一种方法可以指定例如MS SQL Server 2008中的varchar列的4个不同值? 例如,我需要一个名为Frequency(varchar)的列,该列仅接受“每日”,“每周”,“每月”,“每年”作为可能的值 创建表时是否可以在SQL Server Management Studio中进行设置?

3
在INNER JOIN条件下使用“ OR”是个坏主意吗?
为了提高超慢查询的速度(如果有关系,请在SQL Server 2008上,在两个表中各只有几分钟,每行只有约50,000行,要花几分钟),将问题缩小到OR内部联接中,例如: SELECT mt.ID, mt.ParentID, ot.MasterID FROM dbo.MainTable AS mt INNER JOIN dbo.OtherTable AS ot ON ot.ParentID = mt.ID OR ot.ID = mt.ParentID 我将其更改为(希望是)一对等效的左联接,如下所示: SELECT mt.ID, mt.ParentID, CASE WHEN ot1.MasterID IS NOT NULL THEN ot1.MasterID ELSE ot2.MasterID END AS MasterID FROM dbo.MainTable AS mt LEFT JOIN dbo.OtherTable AS ot1 …


10
如何在SQL Server 2008 Management Studio中查看text或varchar(MAX)列的全部内容?
在此实时SQL Server 2008(内部版本10.0.1600)数据库中,有一个Events表,其中包含text名为的列Details。(是的,我意识到这实际上应该是一varchar(MAX)列,但是设置此数据库的人并没有那样做。) 该列包含大量异常日志和相关的JSON数据,我正尝试通过SQL Server Management Studio访问这些日志,但是每当我将结果从网格复制到文本编辑器时,它都会将其截断为43679个字符。 我已经在Internet上的各个位置阅读过,可以将XML数据的“检索的最大字符数”设置Tools > Options > Query Results > SQL Server > Results To Grid为“无限”,然后执行如下查询: select Convert(xml, Details) from Events where EventID = 13920 (请注意,数据是列根本不是XML。CONVERT将列转换为XML只是我从Googling中发现的一种变通方法,其他人过去一直在绕过SSMS从a text或varchar(MAX)列中获取数据的限制。) 但是,在设置上面的选项,运行查询并单击结果中的链接之后,我仍然收到以下错误: 无法显示XML。发生以下错误:发生了意外的文件结尾。第5行,位置220160。 一种解决方案是增加从服务器检索的XML数据字符的数量。若要更改此设置,请在“工具”菜单上,单击“选项”。 那么,关于如何访问此数据的任何想法吗?会转换列以varchar(MAX)解决我的问题吗?


3
存储DateTime(UTC)与存储DateTimeOffset
我通常有一个“拦截器”,在从数据库读取/写入数据库之前,它会进行DateTime转换(从UTC到本地时间,从本地时间到UTC),因此我可以DateTime.Now在整个系统中使用(派生和比较)而不必担心关于时区。 关于序列化和在计算机之间移动数据,无需费心,因为日期时间始终是UTC。 我应该继续以UTC格式存储日期(SQL 2008-datetime),还是应该使用DateTimeOffset(SQL 2008-datetimeoffset)存储日期? 数据库中的UTC日期(datetime类型)已经可以使用并且已经知道很长时间了,为什么要更改它?有什么优势? 我已经研究过类似这样的文章,但是我并不是100%确信。有什么想法吗?

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.