Start here. This is the direct spoken answer to practice first.
Why this question matters
Both artifacts can contribute to memory investigations, but they preserve different state and impose different costs. Choosing deliberately avoids a large sensitive dump when heap statistics are enough, or an incomplete heap artifact when thread and native state matter.
I use a GC dump when the question is mainly about the managed heap: which types occupy memory, how object counts change between two points, and what roots keep objects alive. It is smaller and focused on the heap graph, but collection induces a full GC and needs event buffers in the target, so I still check memory headroom. I use a full process dump when I need the complete point-in-time state: managed threads and stacks, exceptions, locks, heap objects and roots, or evidence around a hang, crash, or out-of-memory condition. A full dump is usually larger, more sensitive, and can put extra pressure on a constrained instance. Neither artifact replaces the counter history that proves when growth happened or whether it was retained memory rather than allocation churn.