小编RK *_*ala的帖子

如何获取数据库中所有分区表的列表?

如何获取数据库中所有分区表的列表?

我应该查看哪些系统表/DMV?

sql-server-2008 sql-server metadata partitioning

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

为什么我的计划指南没有被使用?

我们最近遇到了临界点问题,我们的一些报告查询过去需要在几秒钟内完成执行,现在需要超过 2 分钟,因为查询优化器只是忽略了搜索列上的非聚集索引。下面是一个示例查询:

select top 100 *
from   [dbo].[t_Call]
where  ID > 0 
  and  throwtime between '3/20/2014 7:00:00 AM' and '3/24/2014 6:59:59 AM'
order by id
Run Code Online (Sandbox Code Playgroud)

ID列是聚集索引并且Throwtime具有非聚集索引。在这种情况下,我们注意到 ordering bythrowtime而不是ID更改查询计划和非聚集索引被使用。我们还计划存档一些旧数据(它目前有 2000 万行!!)。但是在应用程序中进行这些更改需要一些时间,我需要找到一种方法来使报告运行得相当快,而无需在应用程序级别进行更改(哦,这就是生活!)。

进入计划指南。我使用非聚集索引查询提示创建了以下计划指南,但出于某种原因,仍未使用非聚集索引。我错过了什么吗?

EXEC sp_create_plan_guide 
@name = N'[prod2reports_callthrowtime]', 
@stmt = N'select top 100 *
          from   [dbo] . [t_Call]
          where  ID > @0 and @1 < = ThrowTime and ThrowTime < = @2 order by ID',
@type = N'SQL', 
@module_or_batch = N'select …
Run Code Online (Sandbox Code Playgroud)

performance sql-server execution-plan plan-guides query-performance

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

Azure 数据仓库 - 用户定义的函数问题

这里有没有人在Azure 数据仓库数据库上创建和使用 UDF 很幸运?我正在将本地仓库从 SQL Server 2014 迁移到 Azure 数据仓库,但遇到了 UDF 问题。

CREATE FUNCTION dbo.fn_GetImpliedRate (@Multiple float, @term int)
RETURNS float
AS
BEGIN
    DECLARE @ImpInt float
    IF(@Term = 1)
        SET @ImpInt = (select [1] from  dbo.ImpliedRate where Multiple = @Multiple); 
    IF(@Term = 2)
        SET @ImpInt = (select [2] from  dbo.ImpliedRate where Multiple = @Multiple); 
    IF(@Term = 3)
        SET @ImpInt = (select [3] from  dbo.ImpliedRate where Multiple = @Multiple); 
    IF(@Term = 4)
        SET @ImpInt = (select [4] from  dbo.ImpliedRate …
Run Code Online (Sandbox Code Playgroud)

sql-server etl functions azure-sql-data-warehouse

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

在服务器之间导出多个表

我们目前有一个 SSIS 包,每晚导出大约 70 个大表,并在目的地进行截断和加载。我们的表格不断变化,我们有时会添加一些表格并删除一些表格,因此相应地编辑 SSIS 包很累人。

有没有办法让一个文本文件或一个包含表名列表的表,并有一个 SSIS 包来循环表并执行导出?这样,可以更轻松地处理导出的表的动态列表。

任何链接,指针表示赞赏。

sql-server ssis

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

Azure SQL 仓库 - 数据摄取 - 将巨大的固定宽度(带逗号)文件转换为分隔

我什至不确定我是否正确地提出了这个问题,但我会尝试 - 我有一堆从 Linux 系统上的 Oracle 导出生成的巨大文本文件。每个文件大小约为 30 GB,我有大约 50 个。

目标是将此数据导出到 Azure SQL 数据仓库。在这种情况下,考虑到数据的大小,BCP 不是正确的方法,所以我不得不使用 Polybase。

从 ASCII 转换为 UTF8 编码后,我在查询外部表时遇到了问题。Polybase 不能很好地处理固定宽度的文本文件,每行都有一个换行符。

文本文件看起来像这样:

101,102,103,104,105,106,107
108,108,109,110,111,112,113
114,115,116,117,118,119,120
121,122,123

--这里什么都没有,只是一个空行

201、202、203、204、205、206、207
208,209,210,211,212,213,214
215,216,217

Polybase 尝试从 101 到 107 进行处理,并且出现错误,抱怨此文件中没有足够的列可供处理。

这是我认为正在发生的事情:固定宽度和换行符使其将换行符视为行分隔符。

如何将此文件转换为如下所示:

101,102,103,104,105,106,107,108,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123{CR}
201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217{CR}{LF}

编辑:这是来自文件的示例数据。我在 Windows VM 上用 git bash 打开它。

这些文件应该有 167 列,,作为列分隔符。问题是,由于每行产生多行,因此很难从 Polybase 外部表处理它们。

import polybase azure-sql-data-warehouse

5
推荐指数
2
解决办法
1660
查看次数

需要帮助将此游标转换为基于集合的操作

我有一个存储过程,它作为报告数据库每晚刷新的一部分运行,大约需要 2 个小时才能完成。该对象B_RPT_RC_AUDIT_ASSIGNED_TO_TEMP_T2有 800 万行。您能否建议我如何将此光标转换为基于集合的方法以获得更好的性能?可以使用 CTE 吗?

ALTER PROCEDURE [dbo].[B_RPT_RC_AUDIT_ASSIGNED_TO_TEMP2_SP] AS      
SET NOCOUNT ON        
DECLARE @SEQ SMALLINT,      
@CASEID DECIMAL,       
@ASSIGNED  NCHAR(30),      
@AUDITSTAMP DATETIME,      
@AUDITOPRID NCHAR(60),      
@STATUS NCHAR(10),      
@LASTCASEID DECIMAL,       
@PROVGRPID NCHAR(20)      
SET @SEQ = 1      
SET @LASTCASEID = @CASEID      

DROP TABLE B_RPT_RC_AUDIT_ASSIGNED_TO_TEMP   

CREATE TABLE B_RPT_RC_AUDIT_ASSIGNED_TO_TEMP (      
  SEQ_NUM SMALLINT,       
  CASE_ID DECIMAL,       
  ASSIGNED_TO NCHAR(30),       
  AUDIT_STAMP DATETIME,       
  AUDIT_OPRID NCHAR(60),      
  RC_STATUS NCHAR(10),      
  PROVIDER_GRP_ID NCHAR(20) )      
DECLARE AUDIT CURSOR FOR        
   SELECT CASE_ID, ASSIGNED_TO, AUDIT_STAMP, AUDIT_OPRID, RC_STATUS, PROVIDER_GRP_ID      
   FROM B_RPT_RC_AUDIT_ASSIGNED_TO_TEMP_T2      

-- Open the cursor …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

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