First of all you must specify to Direct3D that your vertex buffer is dynamic. Specify D3DUSAGE_DYNAMIC. This will not only allow you to lock the vertex buffer but Direct3D will optimize it so that locks are not nearly as expensive.
Second there is no need to create a second vertex buffer. Creating multiple vertex buffers that are static and then attempting to lock them will not work. Use only the vertex buffers you need to get the job done. Multiple vertex buffers and multiple locks will slow your code down.
Third, read the optimization tips in the DX9 SDK help file. They will give you many more ideas.