为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:linux
【CPU】:
【问题描述】*:源数据库sqlserver,已经将COMPATIBLE_MODE改为3,请问下下面视图语法哪里有问题
CREATE VIEW "DBO"."USV_TOP10_SQL" as
SELECT top 3
'PLM' system,
(total_elapsed_time / execution_count)/1000 N'平均时间ms'
,total_elapsed_time/1000 N'总花费时间ms'
,total_worker_time/1000 N'所用的CPU总时间ms'
,total_physical_reads N'物理读取总次数'
,total_logical_reads/execution_count N'每次逻辑读次数'
,total_logical_reads N'逻辑读取总次数'
,total_logical_writes N'逻辑写入总次数'
,execution_count N'执行次数'
,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1
,((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) N'执行语句'
,creation_time N'语句编译时间'
,last_execution_time N'上次执行时间'
FROM
sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
WHERE
SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) not like 'WAITFOR%'
ORDER BY
total_elapsed_time / execution_count DESC;
报错是报在列别名的写法上,N'XXX' 这种写法不支持,除了这个报错以外,这个是系统视图不需要迁移,很多基表达梦中也不存在。
达梦中可以通过 V$SYSTEM_LONG_EXEC、V$LONG_EXEC_SQLS、V$SYSSTAT 等系统视图实现类似的需求
迁移这个没意义,SQLSERVER系统内置的玩意儿,dm_exec_query_stats这种表根本就没有,加上cross apply语法也没有。
这个视图的迁移可以忽略,你只需要关注业务数据(真实业务需要的表、视图)