I'm having some trouble wrapping my head around the difference between actions and transactions in LoadRunner. I realize that transactions exist within actions so that is one difference. Both can be used to measure the response time for a set of operations performed on the AUT. When should transactions be used instead of creating a new action?
I have always turned off "Automatic Transactions" "Define each action as a transaction" which on by default when a script is created.
At least as far as Web scripts go you want to time specific user actions like how long it takes to display a Web page, login, etc. So you put timers around each of these steps in your vuser_init, Action(s), vuser_end sections. If you do use actions as a transaction for some reason it is best to rename your Action section so that the times are not all lumped together in one timer named "Action_transaction" for multiple scripts.
I cannot think of a reason to use the automatic transaction. Maybe someone else has a good reason to use them.
As far as multiple Action sections that really depends on the application under test and if you want to break things out. There are some circumstances where I have used multiple but typically I only use one.