Oh, honey, I feel for you! I have a 2 1/2 year boy, and he brings me to my knees daily! I work outside the home and have him in a great daycare - I totally use the teachers and the director for advice on how to deal - first, just know that the terrible two's are such because this is the age when they figure out they're autonomous - they are completely separate from you and this is both exciting and scary. And a 2 year old's main JOB is to figure out his boundaries - what they can and can't get away with. My best advice - (and this has worked more for my sanity as opposed to curing the behavior forever, which I think is futile at this age) is to sit down with your hubby and decide what battles to fight (throwing things - yes, repeatedly singing lalalala - no, etc.), then deciding on the correct punishment for each infraction. Some things only require redirection, others require timeouts, and yes, some things require spanking (in my house anyway - running into the street prompts and immediate spanking - but spanking is an individual family decision). Then just stick to your list. Your girl will eventually figure out the same thing happens everytime she does X. My son knows how to get into timeout, and he knows how long he's in for and that he has to apologize to get out. Once I set those rules up, I felt so much more in control, which allowed me to parent better, and then I APPEAR in control, and my son knows that and doesn't continue to antagonize. Because now, I don't fret about what to do when he disobeys - I know my course of action (which keeps me from wanting to drink heavily everyday, haha.
But then again, they're TWO, so nothing is going to totally work. Set your rules up and be consistent. And just remember, this is WAY easier than those teenage years are going to be. :)
Good luck -
S.