用友u9一些常用sql分享
--查看指定spid正在執行的SQL
select top 1 total_elapsed_time,substring(text,(statement_start_offset+2)/2, (case when statement_end_offset = -1 then (len(convert(nvarchar(MAX),text))*2) else statement_end_offset end - statement_start_offset) /2 ),a.* from sys.dm_exec_requests a cross apply sys.dm_exec_sql_text(sql_handle)
where a.session_id=78
--鎖定與被鎖定間的鏈狀關係
select t1.resource_type as [資源鎖定類型]
,db_name(resource_database_id) as [數據庫名]
,t1.resource_associated_entity_id as [鎖定的對象]
,t1.request_mode as [等待者需求的鎖定類型]
,t1.request_session_id as [等待者sid]
,t2.wait_duration_ms as [等待時間]
,(select text from sys.dm_exec_requests as r
cross apply sys.dm_exec_sql_text(r.sql_handle)
where r.session_id = t1.request_session_id) as [等待者要執行的批次]
,(select substring(qt.text,r.statement_start_offset/2+1,
(case when r.statement_end_offset = -1
then datalength(qt.text)
else r.statement_end_offset end - r.statement_start_offset)/2+1)
from sys.dm_exec_requests as r
cross apply sys.dm_exec_sql_text(r.sql_handle) as qt
where r.session_id = t1.request_session_id) as [等待者正要執行的語法]
,t2.blocking_session_id as [鎖定者sid]
,(select text from sys.sysprocesses as p
cross apply sys.dm_exec_sql_text(p.sql_handle)
where p.spid = t2.blocking_session_id) as [鎖定者的語法]
from
sys.dm_tran_locks as t1,
sys.dm_os_waiting_tasks as t2
where
t1.lock_owner_address = t2.resource_address
註冊使用U9的CLR函數
--直接執行
EXEC sp_configure 'clr enabled', 1
RECONFIGURE WITH OVERRIDE
GO
--將yourdatabasename替換
/****/
Alter Database yourdatabasename SET TRUSTWORTHY ON
go
use yourdatabasename
go
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
go
/****/
關於數據庫日誌文件大小的問題說明
DBCC SQLPERF (LOGSPACE)
GO
SELECT NAME,recovery_model_desc,log_reuse_wait,log_reuse_wait_desc
FROM sys.databases
--收縮數據庫
DBCC SHRINKDATABASE(庫名)
清空日誌
DUMP TRANSACTION 庫名 WITH NO_LOG
--查看portal的操作信息日誌
select top 100 *
from UBF_Portal_OperationRecord o where o.OccurrenceTime >'2011-11-29 16:25:00.000'
and o.OccurrenceTime <'2011-11-29 16:30:00.000'
--列出使用cpu最多的前50名sql
SELECT q.[text],q.dbid,q.objectid,q.number,q.encrypted,highest_cpu_queries.*
FROM
(SELECT TOP 50 qs.* FROM sys.dm_exec_query_stats qs ORDER BY qs.total_worker_time DESC) AS highest_cpu_queries CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS q ORDER BY highest_cpu_queries.total_worker_time DESC
--列出最經常編譯的存儲過程
SELECT TOP 25 sql_text.[text],sql_handle,plan_generation_num,execution_count,dbid,objectid
FROM sys.dm_exec_query_stats a
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sql_text
WHERE plan_generation_num>1 ORDER BY plan_generation_num DESC
--查看索引的統計更新
dbcc show_statistics(PM_RcvLine,UFIDA_U9_PM_Rcv_RcvLine_BusinessKey_Index)
--重建索引
alter index UFIDA_U9_PM_Rcv_RcvLine_BusinessKey_Index on PM_RcvLine rebuild
--手工更新統計更新
update statistics PM_RcvLine
--查看錶的某個索引的索引字段和包涵索引字段
SELECT c.name index_name,ic.is_included_column
FROM sys.index_columns ic INNER JOIN sys.indexes i ON ic.[object_id]=i.[object_id] AND ic.index_id=i.index_id INNER JOIN
sys.tables t ON i.[object_id]=t.[object_id] INNER JOIN sys.[columns] c ON ic.[object_id]=c.[object_id] AND ic.column_id=c.column_id
WHERE t.name='zhanggang' AND i.name='bbb'
----查表碎片,Base_UOM只有一個clusted索引。碎片率
SELECT
OBJECT_NAME(a.[object_id]) AS [TableName],
a.index_id,
NAME [indexname],
avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(),NULL,NULL,NULL,NULL) AS a
JOIN sys.indexes AS b ON a.[object_id]=b.[object_id] AND a.index_id=b.index_id AND OBJECT_NAME(a.[object_id]) IN
('CBO_ItemMaster','Base_UOM') ORDER BY a.avg_fragmentation_in_percent DESC
用友U9一些常識
--根據表名查找相關實體信息
SELECT a.[FullName], a.[Name], b.[DisplayName] ,
a.[ClassType], a.[ID] FROM [UBF_MD_Class]
as a left join UBF_MD_Class_trl as b on a.Local_ID=b.Local_ID
where 1=1 and ClassType in('1','2','3' ) and
( b.sysmlflag='zh-CN' or b.sysmlflag is null )
and a.Name like 'PMStatistics%' or b.DisplayName
like 'PMStatistics%' order by [Name]
go
--改進版:
DECLARE @name NVARCHAR(64)
DECLARE @sql NVARCHAR(800)
SET @name='InvToGL'
SET @sql = 'SELECT a.[FullName], a.[Name], b.[DisplayName] ,
a.[ClassType], a.[ID] FROM [UBF_MD_Class]
as a left join UBF_MD_Class_trl as b on a.Local_ID=b.Local_ID
where 1=1 and ClassType in(''1'',''2'',''3'' ) and
( b.sysmlflag=''zh-CN'' or b.sysmlflag is null )
and a.Name like ''%'+@name+'%'' or b.DisplayName
like ''%'+@name+'%'' order by [Name] '
EXEC (@sql)
--查一個表有多少字段
SELECT a.* FROM syscolumns a,sysobjects s WHERE a.id=s.id AND s.[name]='table'
select top 1 total_elapsed_time,substring(text,(statement_start_offset+2)/2, (case when statement_end_offset = -1 then (len(convert(nvarchar(MAX),text))*2) else statement_end_offset end - statement_start_offset) /2 ),a.* from sys.dm_exec_requests a cross apply sys.dm_exec_sql_text(sql_handle)
where a.session_id=78
--鎖定與被鎖定間的鏈狀關係
select t1.resource_type as [資源鎖定類型]
,db_name(resource_database_id) as [數據庫名]
,t1.resource_associated_entity_id as [鎖定的對象]
,t1.request_mode as [等待者需求的鎖定類型]
,t1.request_session_id as [等待者sid]
,t2.wait_duration_ms as [等待時間]
,(select text from sys.dm_exec_requests as r
cross apply sys.dm_exec_sql_text(r.sql_handle)
where r.session_id = t1.request_session_id) as [等待者要執行的批次]
,(select substring(qt.text,r.statement_start_offset/2+1,
(case when r.statement_end_offset = -1
then datalength(qt.text)
else r.statement_end_offset end - r.statement_start_offset)/2+1)
from sys.dm_exec_requests as r
cross apply sys.dm_exec_sql_text(r.sql_handle) as qt
where r.session_id = t1.request_session_id) as [等待者正要執行的語法]
,t2.blocking_session_id as [鎖定者sid]
,(select text from sys.sysprocesses as p
cross apply sys.dm_exec_sql_text(p.sql_handle)
where p.spid = t2.blocking_session_id) as [鎖定者的語法]
from
sys.dm_tran_locks as t1,
sys.dm_os_waiting_tasks as t2
where
t1.lock_owner_address = t2.resource_address
註冊使用U9的CLR函數
--直接執行
EXEC sp_configure 'clr enabled', 1
RECONFIGURE WITH OVERRIDE
GO
--將yourdatabasename替換
/****/
Alter Database yourdatabasename SET TRUSTWORTHY ON
go
use yourdatabasename
go
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
go
/****/
關於數據庫日誌文件大小的問題說明
DBCC SQLPERF (LOGSPACE)
GO
SELECT NAME,recovery_model_desc,log_reuse_wait,log_reuse_wait_desc
FROM sys.databases
--收縮數據庫
DBCC SHRINKDATABASE(庫名)
清空日誌
DUMP TRANSACTION 庫名 WITH NO_LOG
--查看portal的操作信息日誌
select top 100 *
from UBF_Portal_OperationRecord o where o.OccurrenceTime >'2011-11-29 16:25:00.000'
and o.OccurrenceTime <'2011-11-29 16:30:00.000'
--列出使用cpu最多的前50名sql
SELECT q.[text],q.dbid,q.objectid,q.number,q.encrypted,highest_cpu_queries.*
FROM
(SELECT TOP 50 qs.* FROM sys.dm_exec_query_stats qs ORDER BY qs.total_worker_time DESC) AS highest_cpu_queries CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS q ORDER BY highest_cpu_queries.total_worker_time DESC
--列出最經常編譯的存儲過程
SELECT TOP 25 sql_text.[text],sql_handle,plan_generation_num,execution_count,dbid,objectid
FROM sys.dm_exec_query_stats a
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sql_text
WHERE plan_generation_num>1 ORDER BY plan_generation_num DESC
--查看索引的統計更新
dbcc show_statistics(PM_RcvLine,UFIDA_U9_PM_Rcv_RcvLine_BusinessKey_Index)
--重建索引
alter index UFIDA_U9_PM_Rcv_RcvLine_BusinessKey_Index on PM_RcvLine rebuild
--手工更新統計更新
update statistics PM_RcvLine
--查看錶的某個索引的索引字段和包涵索引字段
SELECT c.name index_name,ic.is_included_column
FROM sys.index_columns ic INNER JOIN sys.indexes i ON ic.[object_id]=i.[object_id] AND ic.index_id=i.index_id INNER JOIN
sys.tables t ON i.[object_id]=t.[object_id] INNER JOIN sys.[columns] c ON ic.[object_id]=c.[object_id] AND ic.column_id=c.column_id
WHERE t.name='zhanggang' AND i.name='bbb'
----查表碎片,Base_UOM只有一個clusted索引。碎片率
SELECT
OBJECT_NAME(a.[object_id]) AS [TableName],
a.index_id,
NAME [indexname],
avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(),NULL,NULL,NULL,NULL) AS a
JOIN sys.indexes AS b ON a.[object_id]=b.[object_id] AND a.index_id=b.index_id AND OBJECT_NAME(a.[object_id]) IN
('CBO_ItemMaster','Base_UOM') ORDER BY a.avg_fragmentation_in_percent DESC
用友U9一些常識
--根據表名查找相關實體信息
SELECT a.[FullName], a.[Name], b.[DisplayName] ,
a.[ClassType], a.[ID] FROM [UBF_MD_Class]
as a left join UBF_MD_Class_trl as b on a.Local_ID=b.Local_ID
where 1=1 and ClassType in('1','2','3' ) and
( b.sysmlflag='zh-CN' or b.sysmlflag is null )
and a.Name like 'PMStatistics%' or b.DisplayName
like 'PMStatistics%' order by [Name]
go
--改進版:
DECLARE @name NVARCHAR(64)
DECLARE @sql NVARCHAR(800)
SET @name='InvToGL'
SET @sql = 'SELECT a.[FullName], a.[Name], b.[DisplayName] ,
a.[ClassType], a.[ID] FROM [UBF_MD_Class]
as a left join UBF_MD_Class_trl as b on a.Local_ID=b.Local_ID
where 1=1 and ClassType in(''1'',''2'',''3'' ) and
( b.sysmlflag=''zh-CN'' or b.sysmlflag is null )
and a.Name like ''%'+@name+'%'' or b.DisplayName
like ''%'+@name+'%'' order by [Name] '
EXEC (@sql)
--查一個表有多少字段
SELECT a.* FROM syscolumns a,sysobjects s WHERE a.id=s.id AND s.[name]='table'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.