What is MDAC?
MDAC: Microsoft Data Access Component.
Where it is used?
Whenever you write a piece of code that access the database, MDAC comes in to picture. Without MDAC it is NOT possible to access the database. For example, when you write an ASP / VB / .NET code that uses ADO / OLEDB / ODBC to connect to the database do you know which DLL performs the operations for you? It is the MSADO15.DLL, this MSADO15.DLL comes as part of MDAC and it resides in "C:\Program Files\Common Files\System\ado". When you use the OLEDB provider for SQL Server, the DLL is SQLOLEDB.DLL and it will be residing in "C:\Program Files\Common Files\System\Ole DB". Similarly, when you use ODBC connectivity (DSN) the DLL that is used for SQL Server is SQLSRV32.dll which resides in "C:\WINNT\system32". And there are so many similar kinds of DLL's which gets internally called and all of them come as a part of MDAC.
What is its Advantage?
MDAC uses a different HEAP and it will not combine with the other process when it comes with the runtime memory allocation. The MDAC heap is called as MPHEAPS where as the heaps used by other processes are called NTHEAPS. So that means MDAC helps your application to perform the Database operations much quicker in a much safer memory environment. Make sure you are always on TOP of the latest MDAC and the higher the MDAC version the more is the advantage. MDAC is also backward compatible, which means the application built in MDAC 2.7 environment is capable of running under MDAC 2.8(Unless there is a HARD CODED check for the specific MDAC version).