标签: sql-server

在选择中包含表函数中的字段

我在 SQL Server 2008 R2 上运行这个查询:

SELECT 
   orr.Rate, orr.ID, orr.UserKey, fn.NetRate 
FROM 
   OngoingRate orr 
CROSS APPLY 
   dbo.GetRateNetView(orr.UserKey) as fn
WHERE 
   orr.UserKey = 5
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

'.' 附近的语法不正确。

请帮忙

sql-server t-sql sql-server-2008-r2

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

将一个非常大的 SQL 表拆分为多个较小的表

是否可以在表中的列中搜索 1-2000 的数值范围,然后将每一整行复制到不同的表中?通过这样做,技术上将表格分成更小的部分。

sql-server export sql-server-2012

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

在表中定义评级列?

嗨,我正在创建用于对列表中的项目进行评级的数据库,但我想问一下,如果我有五颗星评级,我应该如何在数据库“评级”列中执行此操作?

sql-server datatypes

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

使用单个查询将数据添加到多个表

我想使用单个INSERT INTO查询将数据添加到多个表,我可以这样做吗?

如果可能,请指导我并提供语法。

sql-server-2008 sql-server t-sql

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

使用编译值时查询计划不同

我从计划缓存中提取了一个执行计划,并从 XML 中提取了编译值。然后我使用编译后的值在 SSMS 中运行查询,即使查询计划针对同一个数据库运行,查询计划也不同。

任何人都可以解释为什么会发生这种情况吗?

sql-server execution-plan sql-server-2012

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

将日志存储在单独的或现有的数据库中?

在 .NET WebForms 项目中,我们希望在数据库中记录一年中的某些操作。估计日志的最大大小为 1GB(每天 20.000 条记录,包含 10 个字段),每天最多可能被查询 2 次。

我们正在讨论是否建议将日志记录表放在一个新数据库中(甚至可能在一个单独的服务器上),或者在我们现有的数据库中使用一个新表。

使用我们现有的数据库的好处是我们不需要在代码中建立新的连接,也不需要管理一个新的数据库。缺点可能是数据库无法处理它。

你有什么见解?你有什么建议吗?

sql-server storage

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

按 2 行结果排序会导致 800% 的性能下降

下面的查询,对一个大约 600 万行的表运行需要 25 秒。当我删除最终订单时,它会在 3 秒内运行。表上没有索引(它是一个中间 SSIS ETL 目标,后来被拉入 DW。)

它不是缓存。我以任何顺序多次运行它,结果一致。

查询本身会检查序列号中的差距。SSIS 将使用它来查看是否需要重新获取任何内容。

;with edges as
(
    select 
        ROW_NUMBER() over (partition by s1.SiteIDNumber order by s1.SequenceNumber) as rn,
        s1.SiteIDNumber, 
        s1.SequenceNumber
    from TestPlay s1
    left join TestPlay s2 on s2.SiteIDNumber = s1.SiteIDNumber and s2.SequenceNumber = s1.SequenceNumber + 1
    left join TestPlay s3 on s3.SiteIDNumber = s1.SiteIDNumber and s3.SequenceNumber = s1.SequenceNumber - 1
    where s2.SiteIDNumber is null 
    or s3.SiteIDNumber is null
),
gaps as
(
    select 
        e.rn,
        e.SiteIDNumber,
        e.SequenceNumber  + 1 …
Run Code Online (Sandbox Code Playgroud)

performance sql-server t-sql sql-server-2012 gaps-and-islands

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

插入失败日志

有没有办法查看 SQL Server 数据库的失败插入?我看到我的一些插入失败了,如果可能的话,我想恢复这些数据。

sql-server logs

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

如何识别未使用的表

我们计划合并 2 或 3 个使用几乎相同版本的 SQL Server 2008 R2 的区域数据库,为我们的最终用户报告提供精确的表和大多数存储过程......在此过程中,我们试图摆脱所有未使用的可能出于测试目的而创建的对象,以限制我们在生产数据库中看到的内容。所以有 5 或 7 个表是以前的 DBA 创建但不再使用(至少前端应用程序不再使用它),我如何确保没有其他依赖于这些表、触发器或SP?

在我尝试删除备份以外的备份之前,是否有可供我使用的清单,例如上次使用的时间,由谁使用等......?

sql-server sql-server-2008-r2

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

何时根据服务器上的内存量对 SQL Server 中的表进行分区

我知道表分区主要是为了数据管理。我知道大表的表维护变得更加困难,因为例如索引重建不能适应内存或因为例如使用 O(n*log(n)) 对比例进行排序,这会导致大表出现额外问题。

有人可以举一些例子,相对于服务器上的内存量,一个表应该有多大才能成为分区的明确候选者?假设表大于 RAM 量。不分区表是不好的做法吗?

我正在寻找一些可以作为分析依据的原则。

在下面的答案中链接到的文章中,它还提到:

  • 长期运行的索引维护作业(或无法在所有运行他们,因为他们会花这么长时间)的参考。

所以我想我的问题可以表述为:考虑到硬件规格,当 SQL Server 没有分区时,SQL Server 何时开始出现行存储索引重建问题?

我不相信“这与桌子的大小无关”。当索引无法重建时,我会说分区与表的大小非常相关。

sql-server partitioning

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