标签: sql-server-2012

通过分区提高性能

我正在使用 SQL Server 2012。我正在使用 CTE 从项目表中创建一个订单表。订单表的最终计数约为 1.2 亿。整个过程大约需要2个小时。

对表进行分区是否有助于减少完成时间?

如果是这样,我可以按订单年份对空表进行分区,然后从 CTE 插入到订单表中吗?或者我是否需要在 items 表上创建一个分区,因为 CTE 是从 items 表中汇总的?

此外,我估计的行数与实际行数有很大不同。

performance sql-server partitioning sql-server-2012

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

删除特定的重复项(除最新之外的所有)

删除重复行时,使用教程中的以下查询,我将如何强制删除找到的哪些重复行?

DELETE FROM dbo.ATTENDANCE 
    WHERE AUTOID NOT IN (SELECT MIN(AUTOID) _
FROM dbo.ATTENDANCE 
    GROUP BY EMPLOYEE_ID,ATTENDANCE_DATE) 
Run Code Online (Sandbox Code Playgroud)

这很好用。我使用这个的原因是因为唯一可用的唯一 ID 是IDENTITY列中的一个。为了确定是否有重复的行,我必须查看多列的组合。

但是,如果我有一组重复的行,我/SQL Server 如何决定删除哪些行?我将如何强制它删除除最高IDENTITY值之外的所有内容?

EMPLOYEE_ID     ATTENDANCE_DATE     AUTOID
A001            2011-01-01          1
A001            2011-01-01          2
Run Code Online (Sandbox Code Playgroud)

如果我现在运行查询,它恰好删除了第二个,有AUTOID2 个。但我试图删除除这个之外的所有内容(因为这是最新添加的)。

sql-server sql-server-2012

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

格式化函数返回分钟而不是几个月?

在探索新功能时,FORMAT我遇到了以下问题,想知道是否有其他人遇到过类似的问题并找到了解决方案,或者它是否是一个错误?

SELECT FORMAT(GETDATE(),'mm/dd/yyyy','en-US');
SELECT GETDATE();
Run Code Online (Sandbox Code Playgroud)

输出:

  1. 02/02/2013
  2. 2013-06-02 12:02:54.067

sql-server sql-server-2012

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

如何选择具有最大和最小计数的行?

我在 SQL Server 2012 中有下表:

CREATE TABLE [MyTable] (
    [Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY DEFAULT NEWID(),
    [MyGroup] INT NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

我想输出表格的表格

    | MyGroup | Count
Max |         |
Min |         |
Run Code Online (Sandbox Code Playgroud)

例如,如果我30在MyTable的行,其中MyGroup的= 120行,其中MyGroup的= 2,和10行,其中MyGroup的= 3,然后

    | MyGroup | Count
Max | 1       | 30
Min | 3       | 10
Run Code Online (Sandbox Code Playgroud)

什么样的查询会输出这些信息?

sql-server aggregate count sql-server-2012

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

每天每分钟运行一次作业,特定时间除外

我有一个 Sql server 2012 代理作业,它目前每分钟、每天等运行一次。

我想修改它,使其每天每分钟运行一次,星期六晚上 7:00 到 11:30 除外。作业调度程序可以做到这一点吗?

我尝试使用每日频率,我可以通过这种方式每天更改时间,但不能更改特定日期。

当前时间表:

在此处输入图片说明

sql-server sql-server-2012 sql-server-agent

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

AWE 内存使用量随着 SQL Server 2012 的增长而增长

我在 Windows 2008 R2 x64 机器上安装 SQL Server 2012 时遇到问题。

因为我的记忆似乎正在迅速消失(根据任务管理器图),但我看不到任何程序在使用它,所以我下载了 RAMMap 以更好地了解正在发生的事情。原来我所有的记忆都被 AWE 吞噬了。

我的内存很快就被 SQL Server 吃掉了,达到我允许实例拥有的最大值(当前为 3GB)。

然而,当我尝试研究这个时,每个人似乎都说 SQL Server 2012 64 位系统没有启用 AWE,因为它不需要;AWE 启用的扩展内存可直接访问。但是系统仍然会很高兴地在 AWE 中咀嚼内存,直到达到极限。

不知道还有哪些其他信息可以帮助诊断这一点……或者即使我完全误解了某些东西……我现在对此的了解已达到极限。请不要假设我有很多知识......虽然我通常精通技术,但我绝对不是 DBA。

  • SQL 服务器的最大内存设置为 3GB。
  • 服务器上的物理内存为 10GB。
  • 我不能再给 SQL Server 分配更多内存了——我有一台占用 4GB 空间的虚拟机、Visual Studio、Outlook、IIS 等。
  • 有点不寻常的是,它并没有真正用作服务器,而是用作开发机器,因此数据库工作负载往往很轻(尽管我说没有任何硬性指标)。

sql-server memory sql-server-2012

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

在 SSMS 中看不到 SQL Server 代理

我的笔记本电脑上安装了 SSMS 2012,主机上安装了 SQL Server 2012,但是当我尝试安排 sql 作业时,我没有在左侧列表中找到“SQL Server 代理”!!?

sql-server ssms sql-server-2012 sql-server-agent

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

在扩展事件中 rpc_completed 和 sql_batch_completed 有什么区别?

我理解这rpc_completed被定义为远程过程调用sql_batch_completed的完成,并且是一个 t-sql 批处理的完成。但是,谁能具体解释一下有什么区别?我什么时候应该使用一种,什么时候应该使用另一种?大多数/所有 SQL 命令都会触发这两个事件吗?

sql-server-2008 sql-server-2008-r2 extended-events sql-server-2012

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

如何通过许多可选的过滤参数来提高 SP 的性能?

我需要编写许多具有许多可选过滤参数的 SP。在阅读了 Turgay Sahtiyan(Microsoft 的高级 SQL Server 高级现场工程师)的博客后,他提到了完全相同的问题,解决它的方法是通过动态 SQL。在他的幻灯片中找到它http://blogs.msdn.com/b/turgays/archive/2013/09/07/sqlsaturday-243-cape-town-top-10-performance-tips-for-sql-server-developers .aspx

所以我的问题是这是唯一和最好的方法还是有其他选择?

WHERE (@EmployeeFirstName IS NULL OR emp.First_Name LIKE @EmployeeFirstName )
AND (@EmployeeLastName IS NULL OR emp.Last_Name LIKE @EmployeeLastName )
AND (@EmployeeNetworkLogOn IS NULL OR emp.Network_ID LIKE @EmployeeNetworkLogOn )
AND (@EmployeeStatus IS NULL OR emp.Employee_Status = @EmployeeStatus )
AND (@EmployeeType IS NULL OR emp.Employee_Type = @EmployeeType )
AND (@SupervisorFirstName IS NULL OR sup.First_Name LIKE @SupervisorFirstName )
AND (@SupervisorLastName IS NULL OR sup.Last_Name LIKE @SupervisorLastName )
AND (@SupervisorNetworkLogOn IS NULL OR …
Run Code Online (Sandbox Code Playgroud)

stored-procedures dynamic-sql sql-server-2012

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

SQL Server 2012 Express:如何限制数据库的大小和保留策略?

我不经常使用数据库,我想确保我以正确的方式处理这个问题。

我想将数据库的文件大小配置为不超过 9 个演出。当数据库达到此文件大小限制时,我希望它清除 25%% 的最旧记录以容纳新记录。

这是我可以/应该在数据库服务器本身上配置的东西,比如一次性最大设置配置,还是必须由更新数据库的程序来处理(它会检查容量并告诉它何时清除记录)。

我不是 DBA,所以我不确定这通常是如何处理的。

sql-server sql-server-2012

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