标签: sql-server-2008

如何快速缩小所有数据库的所有文件?

在 SQL Server(在本例中为 2008)中,如何快速缩小实例上所有数据库的所有文件,包括日志和数据?我可以通过 SSMS 并右键单击每个并选择任务 -> 收缩,但我正在寻找更快的东西。

我编写了一些“创建数据库”脚本,但忘记了它们的默认值已经膨胀,并且不需要为该项目中的这些文件保留太多空间。

sql-server-2008 sql-server shrink

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

将选择结果写入 csv 文件

我们需要将 SELECT 查询结果写入一个 csv 文件。如何在 SQL Server 2008 r2 中使用 T-SQL 来完成?我知道它可以在 SSIS 中完成,但由于某些原因,我们没有这个选项。

我尝试使用下面文章中建议的 proc,但是当我运行该 proc 时,SQL 抱怨无法运行在此 proc 中调用的 sys.sp_OACreate 和 sys.sp_OADestroy。

您知道我们如何打开这些组件或知道使用 T-SQL 写入文件的更好方法吗?

提前致谢。

sql-server-2008 t-sql

44
推荐指数
5
解决办法
30万
查看次数

如何在 SQL Server 中正确处理 TimeZone?

我的本地开发服务器在中东,但我的生产服务器在英国。

我需要在他们的时区向用户显示日期。例如,如果用户在沙特阿拉伯,那么我需要根据沙特阿拉伯格式显示时间。

我应该创建一个名为 TimeZone 的新数据库表并以 UTC 格式保存时间吗?

sql-server-2008 sql-server timezone

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

为什么我的数据库在重建并重新索引所有内容后仍然碎片化?

我有一个数据库,我试图通过运行此 T-SQL 一次对所有表进行碎片整理:

SELECT 
        'ALTER INDEX all ON ' + name + ' REORGANIZE;' + CHAR(10) +
        'ALTER INDEX all ON ' + name + ' REBUILD;'
    FROM sys.tables
Run Code Online (Sandbox Code Playgroud)

然后将输出复制并粘贴到新的查询窗口并运行它。我没有错误,但我仍然有碎片。我也尝试分别运行这两个命令,但仍然存在碎片。注意:REORGANIZE Aaron已经让我知道这是不必要的,并且我知道我可以使用动态 sql 来自动执行此操作。

我运行这个以确定我仍然有碎片:

SELECT * FROM 
sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, NULL) 
WHERE avg_fragmentation_in_percent > 0
Run Code Online (Sandbox Code Playgroud)

我得到了:

database_id object_id   index_id    partition_number    index_type_desc alloc_unit_type_desc    index_depth index_level avg_fragmentation_in_percent    fragment_count  avg_fragment_size_in_pages  page_count  avg_page_space_used_in_percent  record_count    ghost_record_count  version_ghost_record_count  min_record_size_in_bytes    max_record_size_in_bytes    avg_record_size_in_bytes    forwarded_record_count  compressed_page_count
85  171147655   1   1   CLUSTERED INDEX IN_ROW_DATA 2 …
Run Code Online (Sandbox Code Playgroud)

index sql-server-2008 fragmentation

43
推荐指数
3
解决办法
5万
查看次数

数据库主体在数据库中拥有一个架构,并且无法删除消息

我试图从数据库中删除一个主体,但不能,因为它拥有一个架构。但是,当我去编辑用户时,取消选中架构的框是蓝色的并且无法移除。如何从这些架构中删除主体?

sql-server-2008 sql-server

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

如何识别负责“字符串或二进制数据将被截断”的列。

我正在使用我从远程 Pg 数据库写入 SELECT 的代码自动生成一些查询,并插入到本地 SQL Server 数据库中。但是,其中之一正在生成此错误:

[Microsoft][ODBC SQL Server 驱动程序][SQL Server]字符串或二进制数据将被截断。(SQL-22001) [状态是 22001 现在是 01000]

[Microsoft][ODBC SQL Server Driver][SQL Server]语句已终止。(SQL-01000) 在 .\insert.pl 第 106 行。

我如何找出哪个列产生了该错误并且缺少输入的长度?有没有办法做到这一点而不用蛮力猜测所有varchar

sql-server-2008 sql-server

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

如何在 SQL Server 2008 中分配整个 Active Directory 组的安全访问权限?

我想在我的内部应用程序中使用集成安全性,这些应用程序都在一个域中。不幸的是,我一直无法让它正常工作。我想在 SQL Server 中为整个 Exchange (Active Directory) 组分配一个角色,以便对某些表进行读/写访问。这样我就不必在有人被雇用时创建操作员或在有人被解雇时删除操作员。这可能吗?我将采取哪些步骤来做到这一点?

sql-server-2008 security sql-server role active-directory

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

将 SQL Server 2012 备份还原到 SQL Server 2008 数据库?

有没有办法将 SQL Server 2012 数据库备份还原到 SQL Server 2008?

我试图附加文件,它不起作用。

sql-server-2008 sql-server sql-server-2012

41
推荐指数
3
解决办法
20万
查看次数

参数嗅探 vs 变量 vs 重新编译 vs 优化未知

所以今天早上我们有一个长时间运行的 proc 导致问题(30 秒 + 运行时间)。我们决定检查参数嗅探是否是罪魁祸首。因此,我们重写了 proc 并将传入的参数设置为变量,以阻止参数嗅探。一种尝试过的/真实的方法。Bam,查询时间得到改善(不到 1 秒)。在查看查询计划时,在原始未使用的索引中发现了改进。

为了验证我们没有得到误报,我们对原始 proc 进行了 dbcc freeproccache 并重新运行以查看改进的结果是否相同。但是,令我们惊讶的是,原来的 proc 仍然运行缓慢。我们再次尝试使用 WITH RECOMPILE,但仍然很慢(我们尝试在对 proc 的调用以及在 proc 内部进行重新编译)。我们甚至重新启动了服务器(显然是开发箱)。

所以,我的问题是……当我们在空计划缓存上得到相同的慢查询时,参数嗅探怎么会受到指责……不应该有任何参数嗅探???

我们是否会受到与计划缓存无关的表统计信息的影响。如果是这样,为什么将传入参数设置为变量会有所帮助??

在进一步的测试中,我们还发现,将在PROC的内部的OPTION(OPTIMIZE未知)DID得到预期的改进计划。

所以,你们中的一些人比我更聪明,你能提供一些关于幕后发生了什么来产生这种结果的线索吗?

另一方面,慢计划也有理由提前中止,GoodEnoughPlanFound而快计划在实际计划中没有提前中止原因。

总之

  • 从传入参数中创建变量(1 秒)
  • 重新编译(30+秒)
  • dbcc freeproccache(30 秒以上)
  • 选项(优化 UKNOWN)(1 秒)

更新:

在此处查看慢速执行计划:https : //www.dropbox.com/s/cmx2lrsea8q8mr6/plan_slow.xml

在此处查看快速执行计划:https : //www.dropbox.com/s/b28x6a01w7dxsed/plan_fast.xml

注意:出于安全原因,表、架构、对象名称已更改。

sql-server-2008 execution-plan cache

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

如何列出或搜索数据库中的所有列名?

我想在数据库中存在的列的名称中搜索字符串。

我正在处理一个维护项目,我处理的一些数据库有 150 多个表,所以我正在寻找一种快速的方法来做到这一点。

你有什么建议吗?

sql-server-2008 database-design sql-server metadata

40
推荐指数
3
解决办法
16万
查看次数