Posts

Showing posts from April, 2009

bird's eye view over SQL Server Performance

There is good statement that you can see what is going on Database
DBCC SQLPERF('waitstats')
it collects wait status group by Wait Type.

get index fragmentation status of SQL Server 2005 database

here is good trick that you can obtain fragmentation status of each table in any selected database

SELECT c.name as TableName, b.name as IndexName, avg_fragmentation_in_percent as Fragmentation
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, sys.tables as c
where c.object_id=a.object_id
order by avg_fragmentation_in_percent;

Results ;
Fragmentation > 5 AND < 30 : Reorganize Index - ALTER INDEX REORGANIZE

to do

Sp_MSForEachTable @command1 = "PRINT 'ALTER INDEX ALL ON TABLE ? WITH Reorganize'", @command2= "ALTER INDEX ALL ON ? REORGANIZE" for every table on selected database in SQL Server 2005.

Fragmentation > 30 Rebuild Index - ALTER INDEX REBUILD

to do

EXEC Sp_MSForEachTable @command1 = "PRINT 'ALTER INDEX ALL ON TABLE ? REBUILD' ", @command2="ALTER INDEX ALL ON ? REBUILD WITH (FILLFACTOR = 80, ONLINE = OFF,SORT_IN_TEMPDB = ON, STA…

How to add .net based user control to AX 2009

if you would like to add any user control prepared on .net platform into AX 2009 you should follow the steps:
1-Create Active X and wrap the user control with unmanaged code.
2-register to windows as COM object.
3-call it from AX.

1- Here is sample code:
//create Class type project in Visual Studio

//Set events that will be used in AX
//presents to caller
[ComVisible(true)]
//create interface type of Dispatch
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
//Create unique key, used by windows
//you can create a guid from tools menu on visual studio easily.
[Guid("102B961D-60B6-4990-8B29-4802F7F9D293")]

public interface IEventInterface
{
[DispId(1)]
//define events that we want to use
void ValidateEdit(object sender, ValidateEditEventArgs e);
}
[ComVisible(true)]
//class unique ID
[ProgId("DC.ActiveX.C1FlexGrid")]
//declera EventInterface class for the class
[ComSourceInterfaces(typeof(IEventInterface))]
//class type should be AutoDual
[ClassInterface(ClassInterfaceType.AutoDual)]
[Gui…