Datagram is better if numbers of packets are not very large. As it is a connectionless service there is no need to prior call set up. Therefore, It is more flexible and provides alternate route to avoid the congested part of the network.
In virtual circuit a logical, path is setup prior the transmission and therefore, no routing decision is to make which ensure that packet are forwarded more quickly than datagram. The logical path between destination and source also assure the sequencing of packet and better error control. However, VC is less reliable because Interruption in a switching node looses all circuit through that node.