We currently have a physical server with 4 physical cpu. Which will be the best VM configuration for SQL Server?
If I configure my native server I will have much better performance because I will not be limited by only 4 CPUs. So is there a way to assign physical CPUs with Hyper-V so that the guest gets access to the entire CPU (and all its cores) rather than just the cores being presented as individual CPUs?
No, the VM is limited to 4 vCPUs under Hyper-V. Each vCPU is a single core in the physical world. If you need more than 4 cores for your database server then it isn't a good candidate for virtualization.