您的位置:首页 > 数据库

代码运行时间 检测锁及死锁详细信息,及sql语句 平台转化

2018-03-22 15:01 746 查看

代码运行时间

 
System.Diagnostics.Stopwatch stopwatch = new Stopwatch();
stopwatch.Start(); //  开始监视代码运行时间
//  需要测试的代码 ....
stopwatch.Stop(); //  停止监视
TimeSpan timespan = stopwatch.Elapsed; //  获取当前实例测量得出的总时间
double hours = timespan.TotalHours; // 总小时
double minutes = timespan.TotalMinutes;  // 总分钟
double seconds = timespan.TotalSeconds;  //  总秒数
double milliseconds = timespan.TotalMilliseconds;  //  总毫秒数



检测锁及死锁详细信息,及sql语句

 


SELECT
SessionID = s.Session_id,
l.request_session_id spid,
a.blocked,
a.start_time,
a.ecid,
OBJECT_NAME(l.resource_associated_entity_id) tableName,
a.text,
resource_type, 
DatabaseName = DB_NAME(resource_database_id),
request_mode,
request_type,
login_time,
host_name,
program_name,
client_interface_name,
login_name,
a.nt_domain,
nt_user_name,
s.status,
last_request_start_time,
last_request_end_time,
s.logical_reads,
s.reads,
request_status,
request_owner_type,
objectid,
dbid,
a.number,
a.encrypted ,
a.blocking_session_id
FROM 
sys.dm_tran_locks l
JOIN sys.dm_exec_sessions s ON l.request_session_id = s.session_id
LEFT JOIN 
(
SELECT [Spid] = session_id ,
blocked,
sp.request_id,--请求ID
sp.cmd,
text,
ecid ,
[Database] = DB_NAME(sp.dbid) ,
[User] = nt_username ,
[Status] = r.status ,
[Wait] = wait_type ,
sp.sql_handle,
Program = program_name ,
hostname ,
nt_domain ,
start_time,
objectid,
sp.dbid,
number,
encrypted ,
blocking_session_id
FROM sys.dm_exec_requests r
INNER JOIN sys.sysprocesses sp ON r.session_id = sp.spid
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle)
) a ON s.session_id = a.Spid
WHERE 
s.session_id > 50 and l.resource_type = 'OBJECT'
and start_time < DATEADD( MI,-2,GETDATE()) --执行时间超过2分钟

     

平台转化

 


StreamReader sr = new StreamReader(path, Encoding.ASCII);
string str2 = sr.ReadToEnd();
string str1 = str2.Replace("\r\n", "\n");
sr.Close();
FileStream fs = new FileStream(path, FileMode.Create, FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(fs, Encoding.ASCII);
sw.Write(str1);
sw.Close();
fs.Close();
在MAC,Windows,ASCII平台下,可以说没有ASCII编码,ASCII就是指UTF-8。
所以我们在NUIX下的文件放到MAC,Windows时最好将其转化为ASCII。
因为转成ASCII编码时,在放到任何平台下都不会出错。(对程序运行时而言,在文件显示中可以说并没有ASCII编码格式)
在NUIX平台UTF-8编码下执行,将会将ASCII转化为UTF-8,平台不变
在Windows平台下UTF-8编码执行,将转化为NUIX平台,编码格式不变。
在MAC平台下UTF-8编码执行,将平台,编码格式不变。
事实说明(ASCII就是UTF-8)

在NUIX平台UTF-8-BOM编码下执行,将会将UTF-8-BOM转化为UTF-8,平台不变
在MAC平台下UTF-8-BOM编码执行,将会将UTF-8-BOM转化为UTF-8,平台不变
在Windows平台下UTF-8-BOM编码执行,将转化为NUIX平台,编码格式变UTF-8

在NUIX平台UCS-2 BE BOM编码下执行,将会将UCS-2 BE BOM转化为UTF-8,平台不变
在MAC平台下UTF-8-BOM编码执行,将会将UCS-2 BE BOM转化为UTF-8,平台不变
在Windows平台下UTF-8-BOM编码执行,将转化为NUIX平台,编码格式变UTF-8


在NUIX平台UCS-2 LE BOM编码下执行,将会将UCS-2 LE BOM转化为UTF-8,平台不变
在MAC平台下UCS-2 LE BOM编码执行,将会将UCS-2 LE BOM转化为UTF-8,平台不变
在Windows平台下UCS-2 LE BOM编码执行,将转化为NUIX平台,编码格式变UTF-8

StreamReader sr = new StreamReader(path, Encoding.Unicode);
string str2 = sr.ReadToEnd();
string str1 = str2.Replace("\n", "\r\n");
sr.Close();
FileStream fs = new FileStream(path, FileMode.Create,FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(fs,Encoding.ASCII);
sw.Write(str1);
sw.Close();
fs.Close();

Windows, MAC平台不可以在转,否则就出乱码。在NUIX平台则会变为windows


BULK INSERT CSVTable28 FROM 'E:\current20151-100\Magic_Tmall_Transaction_20170117_OMS_36.csv'
WITH( FIELDTERMINATOR = '''$''',FIRSTROW=1) 
BULK INSERT 此方法先找FIELDTERMINATOR分隔符再找换行符ROWTERMINATOR [ = 'row_terminator' ]


很简单 \r 是MAC平台换行
\n是NUIX平台换行
\r\n是Windows平台换行
要怎么转自己看着办


XML序列化时候,时间格式小心啦
在读取文件时候如果有时间格式的话,将会读出计算机底层认识的辨别符号,T

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: