小编Use*_*ith的帖子

如何将相当大的 tsql 表从一台服务器移动到另一台服务器?

我一直在想办法将 40GB 的表从一个 SQL Server 机器移动到另一个 SQL Server 机器。他们位于不同的公司,没有内部网链接,显然没有链接服务器。

最初,我认为最快的方法是提取夜间备份文件并将其传输到另一台服务器。从备份创建一个数据库,然后将我的表从该数据库传输到现有数据库。

考虑到这一点后,由于安全原因,我无法在另一家公司拥有该特定数据库中的所有数据。而我所追求的表格是计算性的,与任何类型的公司特定竞争优势无关。

无论哪种方式,我正在寻找的是如何快速有效地导出该大小的表并将其放入与现有数据库没有任何连接的数据库中。

这是我第一次研究这方面的东西,我很确定我不想编写表格。最初,我认为 bak 文件是我最好的选择,但不能完成整个数据库。

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

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

谁更改/修改了 SSMS 2005 或 2008 中的存储过程?

可能的重复:
确定架构更改是如何发生的?

我有一个存储过程,它在昨晚深夜修改过,早上大部分时间都在跟踪问题回到这个变化。

基本上没有人承认这一变化,所以我试图弄清楚如何找到谁修改了这个存储过程。我已经在网上研究过如何找到它,但看起来这是不可能的?

我想如果有人知道如何做到这一点,那就是这里的某个人。

我确实尝试过这个。:

“在 SSMS 中,右键单击服务器名称,选择报告/标准报告/架构更改历史记录。” --> 这没有给我任何东西,但我至少能够运行它,这为我提供了时间。

select name, create_date, modify_date
from sys.procedures
where name = 'mystoredprocedure'
Run Code Online (Sandbox Code Playgroud)

感谢您的任何建议或方向。

sql-server-2005 sql-server-2008 sql-server stored-procedures

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

SCD Type 2 Dimension -> 对于存在此类数据的 type 2 scd,这是正确的布局吗?

这是我的布局的示例图片。

在此处输入图片说明

如您所见,我有我的 SCD 类型(状态/开始日期/结束日期/businesskey)。

我的密钥是标识每条记录的代理密钥。

我的问题是我的层次结构似乎出错了,这可能是由于布局不正确。这是我当前的关键列结构。

等级制度

LineOfBusinessId(关键列:LineOfBusinessId)(名称列:LineOfBusinessName)

WorkerDivisionId(关键列:LineOfBusinessId、WorkerDivisionId)(名称列:WorkerDivisionName)

WorkerId(关键列:LineOfBusinessId、WorkerDivisionId、WorkerId)(名称列:WorkerName)

此维度出错是因为工作人员名称发生更改,并且在完整处理期间发生 select distinct 时,它会发现重复项。我只是想知道针对这种特定情况设置键列的最佳方法是什么。名称是否需要成为关键列的一部分,或者我的层次结构完全不正确。我确信我的设置是正确的,但我现在显然在质疑自己。

我收到了一些建议,在这种情况下最好的做法是使用代理键作为我的键列的一部分,但后来发现这会导致问题,因为我只希望在查询我的 SCD 时显示一条记录。后来,我收到了更多建议,说我不应该在 id 键列中使用代理,而应该在名称键列中使用代理,特别是在 Worker 级别。

在没有听到建立这种类型层次结构的人的意见的情况下,我对使用此设置更新所有多维数据集感到相当不安。当我看到这个设置时,我不得不认为其他人已经建立了这种类型的层次结构,因为它相当简单。非常感谢任何关于此的建议/方向。

谢谢。

ssas slowly-changing-dimension

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

Tsql 查询速度因 Or 内 where 子句而变慢,导致索引扫描而不是搜索

我一直在努力使这个查询更有效地工作。

我发现 where 子句中 Or 的数量是这个查询中最大的问题。此查询位于存储过程中。

我到了我能想到的唯一选择的地步。:

  • 为所有不同的入站参数可能性创建 16 种不同的查询。
  • 创建动态 sql 查询,但我认为这不会更快
  • 恢复到字符串 sql,但我不喜欢这样做,因为它们的执行速度不如存储过程。

我相信其他人以前也遇到过这个问题。查询性能在大约一秒或更短的时间内开始并不可怕,但在某些情况下,它被多次命中,导致长达 5 或 6 秒的延迟。

查询如下。:

DECLARE @PERSON_ID AS INT
DECLARE @ITEM_ID AS INT
DECLARE @ITEM_VERSION AS INT
DECLARE @ITEM_SUB_NAME AS VARCHAR(250)
DECLARE @ITEM_SUB_SUB_NAME AS VARCHAR(250)

--DEFAULTS
SET @PERSON_ID = 0
SET @ITEM_ID = 0
SET @ITEM_VERSION = 1
SET @ITEM_SUB_NAME = NULL
SET @ITEM_SUB_SUB_NAME = NULL

    SELECT ID, PERSON_ID, 
           ISNULL(ITEM_VERSION, 1) AS ITEM_VERSION,
           ISNULL(ITEM_SUB_NAME, '') AS 'ITEM_SUB_NAME',
           ISNULL(ITEM_SUB_SUB_NAME, '') AS 'ITEM_SUB_SUB_NAME',
           ISNULL(ITEM_DATE, '1/1/1900') AS …
Run Code Online (Sandbox Code Playgroud)

performance index sql-server t-sql query-performance

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