เชซเชฐเซ
เชธเชพเชฆเซ เชเซเชเซเชธเซเช
เชเชพเชฒเซ เชธเซเชฅเซ เชคเซเชเซเช เชธเชพเชฅเซ เชถเชฐเซ เชเชฐเซเช. เชชเซเชฐเชฅเชฎ เชชเชฆเซเชงเชคเชฟ เชเชเชฒเซ เชธเชฐเชณ เชเซ เชเซ เชคเซเชจเชพ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเซเชเชฐ เชเชเช เชจเชฅเซ (เชฒเซเชเช เชนเชตเซ เชซเซเชฐเซเชธเซเชเชพเชเชฒ เชเซเชฌเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ):
sqlcmd เชเชเชเช เชเชฐเซ เชเซ เช
เชจเซ เช
เชฎเซ เชคเซเชจเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชธเชฎเชเซเชท เชฐเชเซ เชเชฐเซเช เชเซเช. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฌเซเชเช
เชช เชจเซเชเชฐเซเช เชฎเชพเชเซ เชเชฆเชฐเซเชถ:
เชญเซเชฒเชถเซ เชจเชนเซเช, เชฎเชพเชฐเซเช เชฆเซเชตเชพเชฐเชพ, RDS เชฌเซเชเช
เชช/เชฐเซเชธเซเชเซเชฐ เชนเซเช เชณ เช
เชธเซเชฎเซเชณ เชเซ, เชคเซเชฅเซ เชคเชฎเชพเชฐเซ เชคเซเชจเซ เชฐเชพเชน เชเซเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ:
declare @rds table
(id int, task_type varchar(128), database_name sysname, pct int, duration int,
lifecycle varchar(128), taskinfo varchar(max) null,
upd datetime, cre datetime,
s3 varchar(256), ovr int, KMS varchar(256) null)
waitfor delay '00:00:20'
insert into @rds exec msdb.dbo.rds_task_status @db_name='{db}'
select @xid=max(id) from @rds
again:
waitfor delay '00:00:02'
delete from @rds
insert into @rds exec msdb.dbo.rds_task_status @db_name='{db}'
# {db} substituted with db name by powershell
select @stat=lifecycle,@info=taskinfo from @rds where id=@xid
if @stat not in ('ERROR','SUCCESS','CANCELLED') goto again
เชฌเซเชเซ เชชเชฆเซเชงเชคเชฟ, CSV
เช เชนเซเช เชฌเชงเซเช เชชเชฃ เชเซเชฌ เช เชธเชฐเชณ เชเซ:
เชเซ เชเซ, เช เชชเชฆเซเชงเชคเชฟ เชซเชเซเชค เชคเซเชฏเชพเชฐเซ เช เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ เชเซ CSV เชฎเชพเช เชชเชฐเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒ เชกเซเชเชพ "เชธเชฐเชณ" เชนเซเชฏ. เชเซ เชคเชฎเซ เช เชฐเซเชคเซ TOP N CPU เชธเชเชจ เชเซเชตเซเชฐเซเชเชจเซ เชธเซเชเชฟ เชชเชฐเชค เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชเซ, เชคเซ CSV เช เชนเชเซเชเชคเชจเซ เชเชพเชฐเชฃเซ "เชเชฐเซเชก" เชเชฐเชถเซ เชเซ เชเซเชตเซเชฐเซ เชเซเชเซเชธเซเชเชฎเชพเช เชเซเชเชชเชฃ เช
เชเซเชทเชฐเซ เชนเซเช เชถเชเซ เชเซ - เช
เชฒเซเชชเชตเชฟเชฐเชพเชฎ, เช
เชตเชคเชฐเชฃ, เช
เชจเซ เชฐเซเชเชพ เชตเชฟเชฐเชพเชฎ เชชเชฃ. เชคเซเชฅเซ, เช
เชฎเชจเซ เชเชเชเช เชตเชงเซ เชเชเชฟเชฒเชจเซ เชเชฐเซเชฐ เชเซ.
HTML เชฎเชพเช เชธเซเชเชฆเชฐ เชเชฟเชนเซเชจเซ
เชนเซเช เชคเชฎเชจเซ เชคเชฐเชค เช เชเซเชก เชธเซเชจเชฟเชชเซเช เชเชชเซเชถ
$Header = @"
<style>
TABLE {border-width: 1px; border-style: solid; border-color: black; border-collapse: collapse;}
TH {border-width: 1px; padding: 3px; border-style: solid; border-color: black; background-color: #6495ED;}
TD {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
</style>
"@
$Result = invoke-Sqlcmd -ConnectionString $jstr -Query "select * from DbInv" `
| Select-Object -Property * -ExcludeProperty "ItemArray", "RowError", "RowState", "Table", "HasErrors"
if ($Result -eq $null) { $cnt = 0; }
elseif ($Result.getType().FullName -eq "System.Management.Automation.PSCustomObject") { $cnt = 1; }
else { $cnt = $Result.Rows.Count; }
if ($cnt -gt 0) {
$body = "<h2>My table</h2>"
$Result | ConvertTo-HTML -Title "Rows" -Head $header -body $body `
| Out-File "res.log" -Append -Encoding UTF8
} else {
"<h3>No data</h3>" | Out-File "res.log" -Append -Encoding UTF8
}
เชฎเชพเชฐเซเช เชฆเซเชตเชพเชฐเชพ, System.Management.Automation.PSCustomObject เชธเชพเชฅเซเชจเซ เชฒเชพเชเชจ เชชเชฐ เชงเซเชฏเชพเชจ เชเชชเซ, เชคเซ เชเชพเชฆเซเช เชเซ; เชเซ เชเซเชฐเซเชกเชฎเชพเช เชฌเชฐเชพเชฌเชฐ เชเช เชฒเชพเชเชจ เชนเซเชฏ, เชคเซ เชเซเชเชฒเซเช เชธเชฎเชธเซเชฏเชพเช เชเชญเซ เชฅเชพเชฏ เชเซ. เชฌเชนเซ เชธเชฎเชเซเชฏเชพ เชตเชเชฐ เชเชจเซเชเชฐเชจเซเช เชชเชฐเชฅเซ เชเชเซเชฒ เชฒเซเชตเชพเชฎเชพเช เชเชตเซเชฏเซ. เชชเชฐเชฟเชฃเชพเชฎเซ, เชคเชฎเชจเซ เชเชจเชพ เชเซเชตเซเช เชเชเชเช เชซเซเชฐเซเชฎเซเช เชเชเชเชชเซเช เชฎเชณเชถเซ:
เชเชฒเซเช เชฆเซเชฐเชตเชพ
เชเซเชคเชตเชฃเซ: เชจเซเชเซ เชเชฟเชจเซเชเซ เชเซเชก!
SQL เชธเชฐเซเชตเชฐ เชชเชฐ เชเช เชฐเชฎเซเชเซ เชเซเชตเซเชฐเซ เชเซ เชเซ เชเซเชฒเซเชฒเซ N เชฎเชฟเชจเชฟเช เชฎเชพเชเซ CPU เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเซ เชเซ - เชคเซ เชคเชพเชฐเชฃ เชเชชเซ เชเซ เชเซ เชเชพเชฎเชฐเซเช เชฎเซเชเชฐเชจเซ เชฌเชงเซเช เชฏเชพเชฆ เชเซ! เช เชเซเชตเชฟเช เช
เชเชฎเชพเชตเซ เชเซเช:
DECLARE @ts_now bigint = (SELECT cpu_ticks/(cpu_ticks/ms_ticks)
FROM sys.dm_os_sys_info WITH (NOLOCK));
SELECT TOP(256)
DATEADD(ms, -1 * (@ts_now - [timestamp]), GETDATE()) AS [EventTime],
SQLProcessUtilization AS [SQLCPU],
100 - SystemIdle - SQLProcessUtilization AS [OtherCPU]
FROM (SELECT record.value('(./Record/@id)[1]', 'int') AS record_id,
record.value('(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]', 'int')
AS [SystemIdle],
record.value('(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]', 'int')
AS [SQLProcessUtilization], [timestamp]
FROM (SELECT [timestamp], CONVERT(xml, record) AS [record]
FROM sys.dm_os_ring_buffers WITH (NOLOCK)
WHERE ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR'
AND record LIKE N'%<SystemHealth>%') AS x) AS y
ORDER BY 1 DESC OPTION (RECOMPILE);
เชนเชตเซ, เช เชซเซเชฐเซเชฎเซเชเชฟเชเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ ($Fragment เชเชฒ)
<table style="width: 100%"><tbody><tr style="background-color: white; height: 2pt;">
<td style="width: SQLCPU%; background-color: green;"></td>
<td style="width: OtherCPU%; background-color: blue;"></td>
<td style="width: REST%; background-color: #C0C0C0;"></td></tr></tbody>
</table>
เชเชชเชฃเซ เชชเชคเซเชฐเชจเซ เชฎเซเชเซเชฏ เชญเชพเช เชฌเชจเชพเชตเซ เชถเชเซเช เชเซเช:
$Result = invoke-Sqlcmd -ConnectionString $connstr -Query $Query `
| Select-Object -Property * -ExcludeProperty `
"ItemArray", "RowError", "RowState", "Table", "HasErrors"
if ($Result.HasRows) {
foreach($item in $Result)
{
$time = $itemEventTime
$sqlcpu = $item.SQLCPU
$other = $itemOtherCPU
$rest = 100 - $sqlcpu - $other
$f = $fragment -replace "SQLCPU", $sqlcpu
$f = $f -replace "OtherCPU", $other
$f = $f -replace "REST", $rest
$f | Out-File "res.log" -Append -Encoding UTF8
}
เชเซ เชเชจเชพ เชเซเชตเซ เชฆเซเชเชพเชถเซ:
เชนเชพ, เชฎเชนเชพเชถเชฏ เชตเชฟเชเซเชคเชฟเช เชตเชฟเชถเซ เชเชฃเซเช เชเชพเชฃเซ เชเซ! เชคเซ เชฐเชธเชชเซเชฐเชฆ เชเซ เชเซ เช เชเซเชกเชฎเชพเช เชถเชพเชฎเซเชฒ เชเซ: เชชเชพเชตเชฐเชถเซเชฒ (เชคเซเชฎเชพเช เชฒเชเชพเชฏเซเชฒ), SQL, Xquery, HTML. เชคเซ เช
เชซเชธเซเชธเชจเซ เชตเชพเชค เชเซ เชเซ เช
เชฎเซ เชเชพเชตเชพเชธเซเชเซเชฐเชฟเชชเซเชเชจเซ HTML เชฎเชพเช เชเชฎเซเชฐเซ เชถเชเชคเชพ เชจเชฅเซ (เชเชพเชฐเชฃ เชเซ เชคเซ เชฒเชเชตเชพ เชฎเชพเชเซ เชเซ), เชชเชฐเชเชคเซ เชชเชพเชฏเชฅเซเชจ เชเซเชกเชจเซ เชชเซเชฒเชฟเชถ เชเชฐเชตเซ (เชเซเชจเซ เชเชชเชฏเซเช SQL เชฎเชพเช เชฅเช เชถเชเซ เชเซ) เช เชฆเชฐเซเชเชจเซ เชซเชฐเช เชเซ!
SQL เชชเซเชฐเซเชซเชพเชเชฒเชฐ เชเซเชฐเซเชธ เชเชเชเชชเซเช
เชคเซ เชธเซเชชเชทเซเช เชเซ เชเซ TextData เชซเซเชฒเซเชกเชจเซ เชเชพเชฐเชฃเซ เชเซเชฐเซเชธ CSV เชฎเชพเช เชซเชฟเช เชฅเชถเซ เชจเชนเซเช. เชชเชฐเชเชคเซ เชชเชคเซเชฐเชฎเชพเช เชเซเชฐเซเชธ เชเซเชฐเซเชก เชฆเชฐเซเชถเชพเชตเชตเซเช เช เชชเชฃ เชตเชฟเชเชฟเชคเซเชฐ เชเซ - เชฌเชเชจเซ เชเชฆเชจเซ เชเชพเชฐเชฃเซ เช เชจเซ เชเชพเชฐเชฃ เชเซ เช เชกเซเชเชพเชจเซ เชเชชเชฏเซเช เชตเชงเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ. เชคเซเชฅเซ, เช เชฎเซ เชจเซเชเซ เชฎเซเชเชฌ เชเชฐเซเช เชเซเช: เช เชฎเซ เชฎเชพเชฐเชซเชคเซ เชเซเชฒ เชเชฐเซเช เชเซเช invoke-SqlCmd เชเซเชเซเชเชธ เชธเซเชเซเชฐเชฟเชชเซเช, เชเซเชจเซ เชเชเชกเชพเชเชฎเชพเช เชคเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ
select
SPID,EventClass,TextData,
Duration,Reads,Writes,CPU,
StartTime,EndTime,DatabaseName,HostName,
ApplicationName,LoginName
from ::fn_trace_gettable ( @filename , default )
เชเชเชณ, เชเชพเชฒเซ เชฎเชฟเชคเซเชฐ DBA เชฆเซเชตเชพเชฐเชพ เชเชเซเชธเซเชธ เชเชฐเซ เชถเชเชพเชฏ เชคเซเชตเชพ เชธเชฐเซเชตเชฐ เชชเชฐ, เชเชพเชฒเซ เชจเชฎเซเชจเชพ เชธเชพเชฅเซเชจเซ เชเช เชเซเชฐเซเชธเชฟเชธ เชกเซเชเชพเชฌเซเช เชเซ, เชฎเซเชกเซเชฒ เชชเซเชฒเซเช, เชคเชฎเชพเชฎ เชเชฒเซเชฒเซเชเชฟเชค เชเซเชฒเชฎ เชธเซเชตเซเชเชพเชฐเชตเชพ เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชเซ. เช เชฎเซ เช เชฎเซเชกเซเชฒเชจเซ เช เชจเชจเซเชฏ เชจเชพเชฎ เชธเชพเชฅเซ เชจเชตเชพ เชเซเชฌเชฒ เชชเชฐ เชเซเชชเชฟ เชเชฐเซเช เชเซเช:
$dt = Get-Date -format "yyyyMMdd"
$tm = Get-Date -format "hhmmss"
$tableName = $srv + "_" + $dt + "_" + $tm
$copytab = "select * into " + $tableName + " from Model"
invoke-SqlCmd -ConnectionString $tstr -Query $copytab
เช เชจเซ เชนเชตเซ เชเชชเชฃเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชชเชฃเซเช เชเซเชฐเซเชธ เชฒเชเซ เชถเชเซเช เชเซเช เชกเซเชเชพ.SqlClient.SqlBulkCopy - เชฎเซเช เชเชชเชฐ เชเชจเซเช เชเชฆเชพเชนเชฐเชฃ เชชเชนเซเชฒเซเชฅเซ เช เชเชชเซเชฏเซเช เชเซ. เชนเชพ, TextData เชฎเชพเช เชธเซเชฅเชฟเชฐเชพเชเชเซเชจเซ เชฎเชพเชธเซเช เชเชฐเชตเซเช เชชเชฃ เชธเชฐเชธ เชฐเชนเซเชถเซ:
# mask data
foreach ($Row in $Result)
{
$v = $Row["TextData"]
$v = $v -replace "'([^']{2,})'", "'str'" -replace "[0-9][0-9]+", '999'
$Row["TextData"] = $v
}
เช เชฎเซ เชเช เช เชเซเชทเชฐเชฅเซ เชตเชงเซ เชฒเชพเชเชฌเซ เชธเชเชเซเชฏเชพเชเชจเซ 999 เชธเชพเชฅเซ เชฌเชฆเชฒเซเช เชเซเช, เช เชจเซ เช เชฎเซ เชเช เช เชเซเชทเชฐ เชเชฐเชคเชพเช เชฒเชพเชเชฌเซ เชธเซเชเซเชฐเชฟเชเชเซเชธเชจเซ 'str' เชธเชพเชฅเซ เชฌเชฆเชฒเซเช เชเซเช. 0 เชฅเซ 9 เชธเซเชงเซเชจเซ เชธเชเชเซเชฏเชพเชเชจเซ เชตเชพเชฐเชเชตเชพเชฐ เชซเซเชฒเซเช เชคเชฐเซเชเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ, เช เชจเซ เช เชฎเซ เชคเซเชฎเชจเซ เชธเซเชชเชฐเซเชถเชคเชพ เชจเชฅเซ, เชคเซเชฎเช เชเชพเชฒเซ เช เชจเซ เชเช-เช เชเซเชทเชฐ เชถเชฌเซเชฆเชฎเชพเชณเชพเช - 'Y', 'N', เชตเชเซเชฐเซ เชเชฃเซ เชตเชพเชฐ เชคเซเชฎเชจเซ เชตเชเซเชเซ เชเซเชตเชพ เชฎเชณเซ เชเซ.
เชเชพเชฒเซ เชเชชเชฃเชพ เชเซเชตเชจเชฎเชพเช เชฅเซเชกเซ เชฐเชเช เชเชฎเซเชฐเซเช (เชเชกเช 18+)
เชเซเชทเซเชเชเซเชฎเชพเช, เชคเชฎเซ เชตเชพเชฐเชเชตเชพเชฐ เชงเซเชฏเชพเชจเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชคเซเชตเชพ เชเซเชทเซเชจเซ เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, FAILS, เชเชเซเช เชธเซเชคเชฐเชจเซเช เชตเชฟเชญเชพเชเชจ, เชตเชเซเชฐเซ. เช เชฒเชฌเชคเซเชค, เช เชเชเชฆเชฎ เชเชธเชเซเชฏเซเชเชฒเชฎเชพเช เชเชฐเซ เชถเชเชพเชฏ เชเซ, เชชเซเชฐเชฟเชจเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ HTML เชเชจเชฐเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ เช เชจเซ เชเซเชจเชเชฟเชจเซเชธเชฎเชพเช เชซเชพเชเชฒ เชชเซเชฐเชเชพเชฐเชจเซ HTML เชชเชฐ เชธเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ:
declare @body varchar(max), @chunk varchar(max)
set @body='<font face="Lucida Console" size="3">'
set @body=@body+'<b>Server name: '+@@servername+'</b><br>'
set @body=@body+'<br><br>'
set @body=@body+'<table><tr><th>Job</th><th>Last Run</th><th>Avg Duration, sec</th><th>Last Run, Sec</th><th>Last Status</th></tr>'
print @body
DECLARE tab CURSOR FOR SELECT '<tr><td>'+name+'</td><td>'+
LastRun+'</td><td>'+
convert(varchar,AvgDuration)+'</td><td>'+
convert(varchar,LastDuration)+'</td><td>'+
case when LastStatus<>'Succeeded' then '<font color="red">' else '' end+
LastStatus+
case when LastStatus<>'Succeeded' then '</font>' else '' end+
+'</td><td>'
from #j2
OPEN tab;
FETCH NEXT FROM tab into @chunk
WHILE @@FETCH_STATUS = 0
BEGIN
print @chunk
FETCH NEXT FROM tab into @chunk;
END
CLOSE tab;
DEALLOCATE tab;
print '</table>'
เชฎเซเช เชเชตเซ เชเซเชก เชเซเชฎ เชฒเชเซเชฏเซ?
เชชเชฐเชเชคเซ เชคเซเชฏเชพเช เชเช เชตเชงเซ เชธเซเชเชฆเชฐ เชเชเซเชฒ เชเซ. เชเชจเซเชตเชฐเซเช เชเซ-เชเชเชเซเชเชฎเชเชฒ เช
เชฎเชจเซ เชเซเชทเซเชจเซ เชฐเชเชเชตเชพ เชฆเซเชคเชพ เชจเชฅเซ, เชชเชฐเชเชคเซ เช
เชฎเซ เชคเซ เชนเชเซเชเชค เชชเชเซ เชเชฐเซ เชถเชเซเช เชเซเช. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เช
เชฎเซ 80 เชฅเซ เชตเชงเซ เช
เชจเซ 90 เชฅเซ เชตเชงเซเชจเชพ เชซเซเชฐเซเชเชฎเซเชจเซเชเซเชถเชจ เชฒเซเชตเชฒเชตเชพเชณเชพ เชเซเชทเซ เชชเชธเชเชฆ เชเชฐเชตเชพ เชฎเชพเชเชเซเช เชเซเช. เชเชพเชฒเซ เชถเซเชฒเซเช เชเชฎเซเชฐเซเช:
<style>
.SQLmarkup-red { color: red; background-color: yellow; }
.SQLmarkup-yellow { color: black; background-color: #FFFFE0; }
.SQLmarkup-default { color: black; background-color: white; }
</style>
เชเซเชตเซเชฐเซ เชฎเชพเช เช เชเชชเชฃเซ เชเช เชกเชฎเซ เชเซเชฒเชฎ เชเชฎเซเชฐเซเชถเซเช เชคเชฐเชค เช เชชเชนเซเชฒเชพเช เชเซเชฒเชฎ เช เชฎเซ เชฐเชเช เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซ. เชเซเชฒเชฎ เชฌเซเชฒเชพเชตเชตเซ เชเซเชเช SQLเชฎเชพเชฐเซเชเช เชช-เชเชเชเช:
case
when ps.avg_fragmentation_in_percent>=90.0 then 'SQLmarkup-red'
when ps.avg_fragmentation_in_percent>=80.0 then 'SQLmarkup-yellow'
else 'SQLmarkup-default'
end as [SQLmarkup-1],
ps.avg_fragmentation_in_percent,
เชนเชตเซ, เชชเชพเชตเชฐเชถเซเชฒ เชฆเซเชตเชพเชฐเชพ เชเชจเชฐเซเช เชเชฐเซเชฒ HTML เชชเซเชฐเชพเชชเซเชค เชเชฐเซเชฏเชพ เชชเชเซ, เช เชฎเซ เชนเซเชกเชฐเชฎเชพเชเชฅเซ เชกเชฎเซ เชเซเชฒเชฎ เชฆเซเชฐ เชเชฐเซเชถเซเช, เช เชจเซ เชกเซเชเชพเชจเชพ เชฎเซเชเซเชฏ เชญเชพเชเชฎเชพเช เช เชฎเซ เชเซเชฒเชฎเชฎเชพเชเชฅเซ เชธเซเชเชพเชเชฒเชฎเชพเช เชฎเซเชฒเซเชฏเชจเซ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเซเชถเซเช. เช เชซเชเซเชค เชฌเซ เช เชตเซเชเซ เชธเชพเชฅเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
$html = $html `
-replace "<th>SQLmarkup[^<]*</th>", "" `
-replace "<td>SQLmarkup-(.+?)</td><td>",'<td class="SQLmarkup-$1">'
เชชเชฐเชฟเชฃเชพเชฎ:
เชคเซ เชญเชตเซเชฏ เชจเชฅเซ? เชจเชพ เชนเซเชตเชพ เชเชคเชพเช, เช เชฐเชเช เชฎเชจเซ เชเชเชเช เชฏเชพเชฆ เช
เชชเชพเชตเซ เชเซ
เชธเซเชฐเซเชธ: www.habr.com