Thursday, March 3, 2016

Know read and write ratio before you tune database performance

 SELECT object_name(s.object_id) as usertable,
       SUM(user_seeks + user_scans + user_lookups) as reads,
  SUM(user_updates) as writes,
  SUM(user_seeks + user_scans + user_lookups+user_updates)  as totalIO,

CASE
WHEN SUM(user_seeks + user_scans + user_lookups+user_updates) >0
then round(SUM(user_seeks + user_scans + user_lookups)*100/SUM(user_seeks + user_scans + user_lookups+user_updates),0)
else 0
END
AS readratio,
CASE
WHEN SUM(user_seeks + user_scans + user_lookups+user_updates) >0
then SUM(user_updates)*100/SUM(user_seeks + user_scans + user_lookups+user_updates)
else 0
END
AS writeratio
FROM sys.dm_db_index_usage_stats AS s
INNER JOIN sys.indexes AS i
ON s.object_id = i.object_id
AND i.index_id = s.index_id
WHERE objectproperty(s.object_id,'IsUserTable') = 1
--AND s.database_id = @dbid
--GROUP BY object_name(s.object_id)

GROUP BY s.object_id

--order by totalIO desc,readratio desc,reads desc,writeratio desc,writes desc

order by totalIO DESC, writes desc,writeratio desc

Identify Unused SQL Server Tables

; with UnUsedTables (TableName , TotalRowCount, CreatedDate , LastModifiedDate )
AS (
  SELECT DBTable.name AS TableName
     ,PS.row_count AS TotalRowCount
     ,DBTable.create_date AS CreatedDate
     ,DBTable.modify_date AS LastModifiedDate
  FROM sys.all_objects  DBTable
     JOIN sys.dm_db_partition_stats PS ON OBJECT_NAME(PS.object_id)=DBTable.name
  WHERE DBTable.type ='U'
     AND NOT EXISTS (SELECT OBJECT_ID
                     FROM sys.dm_db_index_usage_stats
                     WHERE OBJECT_ID = DBTable.object_id )
)
-- Select data from the CTE
SELECT TableName , TotalRowCount, CreatedDate , LastModifiedDate
FROM UnUsedTables
ORDER BY TotalRowCount ASC

Wednesday, March 2, 2016

Find String start with alphabets c#

bool isLetter = !String.IsNullOrEmpty(segmentString) && Char.IsLetter(segmentString[0]);
 if (isLetter == false)
                {
                    do
                    {
                        segmentString = x12Reader.ReadNextSegment();
                    } while (!segmentString.StartsWith("ST") && !string.IsNullOrEmpty(segmentString));
                }