我正在使用 SQL Server 2012。我正在使用 CTE 从项目表中创建一个订单表。订单表的最终计数约为 1.2 亿。整个过程大约需要2个小时。
对表进行分区是否有助于减少完成时间?
如果是这样,我可以按订单年份对空表进行分区,然后从 CTE 插入到订单表中吗?或者我是否需要在 items 表上创建一个分区,因为 CTE 是从 items 表中汇总的?
此外,我估计的行数与实际行数有很大不同。
删除重复行时,使用本教程中的以下查询,我将如何强制删除找到的哪些重复行?
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 个。但我试图删除除这个之外的所有内容(因为这是最新添加的)。
在探索新功能时,FORMAT我遇到了以下问题,想知道是否有其他人遇到过类似的问题并找到了解决方案,或者它是否是一个错误?
SELECT FORMAT(GETDATE(),'mm/dd/yyyy','en-US');
SELECT GETDATE();
Run Code Online (Sandbox Code Playgroud)
输出:
我在 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的= 1,20行,其中MyGroup的= 2,和10行,其中MyGroup的= 3,然后
| MyGroup | Count
Max | 1 | 30
Min | 3 | 10
Run Code Online (Sandbox Code Playgroud)
什么样的查询会输出这些信息?
我有一个 Sql server 2012 代理作业,它目前每分钟、每天等运行一次。
我想修改它,使其每天每分钟运行一次,星期六晚上 7:00 到 11:30 除外。作业调度程序可以做到这一点吗?
我尝试使用每日频率,我可以通过这种方式每天更改时间,但不能更改特定日期。
当前时间表:

我在 Windows 2008 R2 x64 机器上安装 SQL Server 2012 时遇到问题。
因为我的记忆似乎正在迅速消失(根据任务管理器图),但我看不到任何程序在使用它,所以我下载了 RAMMap 以更好地了解正在发生的事情。原来我所有的记忆都被 AWE 吞噬了。
我的内存很快就被 SQL Server 吃掉了,达到我允许实例拥有的最大值(当前为 3GB)。
然而,当我尝试研究这个时,每个人似乎都说 SQL Server 2012 64 位系统没有启用 AWE,因为它不需要;AWE 启用的扩展内存可直接访问。但是系统仍然会很高兴地在 AWE 中咀嚼内存,直到达到极限。
不知道还有哪些其他信息可以帮助诊断这一点……或者即使我完全误解了某些东西……我现在对此的了解已达到极限。请不要假设我有很多知识......虽然我通常精通技术,但我绝对不是 DBA。
我的笔记本电脑上安装了 SSMS 2012,主机上安装了 SQL Server 2012,但是当我尝试安排 sql 作业时,我没有在左侧列表中找到“SQL Server 代理”!!?
我理解这rpc_completed被定义为远程过程调用sql_batch_completed的完成,并且是一个 t-sql 批处理的完成。但是,谁能具体解释一下有什么区别?我什么时候应该使用一种,什么时候应该使用另一种?大多数/所有 SQL 命令都会触发这两个事件吗?
sql-server-2008 sql-server-2008-r2 extended-events sql-server-2012
我需要编写许多具有许多可选过滤参数的 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) 我不经常使用数据库,我想确保我以正确的方式处理这个问题。
我想将数据库的文件大小配置为不超过 9 个演出。当数据库达到此文件大小限制时,我希望它清除 25%% 的最旧记录以容纳新记录。
这是我可以/应该在数据库服务器本身上配置的东西,比如一次性最大设置配置,还是必须由更新数据库的程序来处理(它会检查容量并告诉它何时清除记录)。
我不是 DBA,所以我不确定这通常是如何处理的。
sql-server-2012 ×10
sql-server ×8
aggregate ×1
count ×1
dynamic-sql ×1
memory ×1
partitioning ×1
performance ×1
ssms ×1