是否有 T-SQL 查询显示某个数据库的上次还原日期时间?
我正在尝试强制删除数据库,但是在删除数据库后,当我尝试重新创建数据库时,出现错误
无法创建文件 C:\Program Files.....[databasename].mdf 因为它已经存在
这是我强制删除数据库的查询
Use master;
ALTER database [databasename] set offline with ROLLBACK IMMEDIATE;
DROP database [databasename];
Run Code Online (Sandbox Code Playgroud)
我明白,上面的查询正在删除数据库,但它没有删除.ldf
和.mdf
文件。如何彻底删除数据库?
正常查询
Drop database [databasename] ; //deletes the database completely, including the ldf and mdf's.
Run Code Online (Sandbox Code Playgroud)
如何强制删除数据库,同时删除.mdf
和.ldf
文件?
目前在我们的 SQL Server 2012 数据库中,我们正在使用varchar
,我们想改变它nvarchar
。我已经生成了一个脚本来做到这一点。
我的问题是 SQL Server 写入varchar
列的方式与写入列的方式有什么不同吗?nvarchar
列的吗?我们有一些我很关心的后端程序。
编辑:
不确定这是否有帮助,但这些列没有索引、f/k 或约束。
我一直在做我的SQL Server 2014 Express数据库的备份导入到其他服务器,发现两者之间的文件大小的差异.bacpac
和.bak
。
为什么一个.bacpac
文件比.bak
同一个数据库的文件那么小?
感谢您的任何见解!
假设您需要确保依赖 SQL Server 2012 作为其数据库后端的应用程序全天候可用,即使一台服务器出现故障。
作为开发人员而不是 DBA,我很难理解何时使用哪种场景来实现故障转移/高可用性:
这些场景中的哪一个适用于什么样的工作负载,以及这些场景可以处理什么样的故障/中断?它们甚至具有可比性/可交换性吗?
sql-server clustering failover availability-groups transactional-replication
SQL Server 占用了我服务器 RAM 的 87.5%。这最近造成了很多性能瓶颈,例如缓慢。我研究了这个问题。我可以在 Internet 上找到的一种常见解决方案是设置 SQL Server 的最大限制。这已经完成并且获得了很大的改进。我想知道为什么如果没有设置最大内存值为什么 SQL Server 不断消耗资源
好的,所以我有一份报告进行了本周与上周的比较,我们的客户注意到他们的数据是“时髦的”。经过进一步调查,我们发现它没有按照 ISO 标准正确运行数周。我将此脚本作为测试用例运行。
SET DATEFIRST 1
SELECT DATEPART(WEEK, '3/26/13')
, DATEPART(WEEK, '3/27/12')
, DATEPART(WEEK, '3/20/12')
, DATEPART(WEEK, '1/2/12')
SELECT DATEPART(ISO_WEEK, '3/26/13')
, DATEPART(ISO_WEEK, '3/27/12')
, DATEPART(ISO_WEEK, '3/20/12')
, DATEPART(ISO_WEEK, '1/2/12')
Run Code Online (Sandbox Code Playgroud)
运行时我得到了这些结果。
我认为这很奇怪,所以我做了更多的挖掘,发现 SQL Server 将 1 月 1 日计算为一年的第一周,而 ISO 将 1 月的第一个星期日计算为一年的第一周。
这个问题最终有两个方面。问题1 这是为什么?问题 2 有什么方法可以改变这一点,这样我就不必修改我的所有代码以ISO_Week
在任何地方使用?
我的一位同事在我们的 SQL Server 2008 R2 数据库中命名了一个存储过程sp_something
。看到这里,我立刻想:“那是错的!” 并开始在我的书签中搜索这篇解释错误原因的在线文章,以便我可以向我的同事提供解释。
在文章(由Brian Moran撰写)中解释说,给存储过程一个sp_前缀会使 SQL Server 查看主数据库以获取编译计划。因为sp_sproc
不驻留在那里,SQL Server 将重新编译该过程(并且需要一个排它编译锁,导致性能问题)。
文章中给出了以下示例以显示两个程序之间的区别:
USE tempdb;
GO
CREATE PROCEDURE dbo.Select1 AS SELECT 1;
GO
CREATE PROCEDURE dbo.sp_Select1 AS SELECT 1;
GO
EXEC dbo.sp_Select1;
GO
EXEC dbo.Select1;
GO
Run Code Online (Sandbox Code Playgroud)
您运行它,然后打开 Profiler(添加存储过程 ->SP:CacheMiss
事件)并再次运行存储过程。您应该会看到两个存储过程之间的区别:sp_Select1
存储过程生成的SP:CacheMiss
事件比Select1
存储过程多一个(文章引用了SQL Server 7.0和SQL Server 2000。)
当我在我的 SQL Server 2008 R2 环境中运行该示例时,我SP:CacheMiss
为两个过程(在 tempdb 和另一个测试数据库中)获得了相同数量的事件。
所以我想知道: …
是否有任何内置函数/存储过程/查询有助于检索有关MyTable
SQL Server 数据库中大小的信息?
我正在使用 SQL Server 2012 并且想知道如何分析存储过程
例如,探查器可以捕获存储过程中的每个单独的 SQL 语句,它是什么,运行需要多长时间等?
我正在尝试诊断合并复制存储过程,这必须是合并代理完整运行的一部分。似乎不可能抓住有性能问题的存储过程并再次运行它,因为在这一点上它并不慢。
sql-server ×9
backup ×1
clustering ×1
export ×1
failover ×1
import ×1
memory ×1
restore ×1
table ×1
varchar ×1