Let's see, well let's say that you have an application, and you open you have a connection open the entire time that you are in the app (until you close it) that will take a lot of your resources, so you decide to use it inside methods, like this
public static void(){
//open connection
//doing stuff
connection.Close();
}
so every time that you use the method you will open and then close the connection, which means that you are avoiding the first problem. However opening and closing connections could lead into more resources usage.
So the solution is Using connection pooling this will allow you to create a pool of Connections Objects and every time that you don't need it instead of disposing the connection you return this connection to the pool, waiting for you to reuse it.