The United States shot down a satellite (USA-193) in low Earth orbit, with Hydrazine on board, to prevent a toxic disaster. They did it at low altitude to prevent long lived debris. Was such a technique effective?
There's two things to look at in answering this question. First the large, track-able objects, and second the small un-track-able objects.
The large objects (I'm defining large as big enough to track) consisted of 174 objects according to Space Track the US public TLE database. These objects were tracked until re-entry, the last of which was 28/Oct/2009. Simple answer here.
The small objects are a little more complicated. We can reliably say that smaller objects typically have a lower ballistic coefficient since if we assume (big assumption) that the objects are spherical, mass is proportional to r^3 whereas wetted surface area is proportional to r^2 (r = radius). So from this definition, and knowing that the large objects all de-orbited due to drag by 28/Oct/2009 we can be pretty confident that the small pieces mostly de-orbited by that time also. A secondary concern however is that since small objects have a lower mass they are more freely accelerated by the explosion. So if any objects are expected to be in orbits with higher semi-major axes the smaller objects would be more likely. However this isn't too much of a problem since the perigee of the small object orbits will stay close to the original satellite orbit and the perigee can effectively re-circularise and orbit due to drag alone; at which point the small objects would de-orbit relatively quickly as discussed.
As for whether the technique was effective, it's a mixed bag really. As @GdD states in their answer it created a greater orbital hazard whilst the spacecraft was in orbit. But it was a good proof of concept for the technology, and the re-entering objects would have been much smaller and hence much more likely to burn up in the atmosphere.
I'd like to provide more references but you can find all the data on the large object debris from Space Track, but you do have to sign up (free).
I suspect there's no 100 answer to your question about how long debris lasts. Low earth orbit satellites have a small amount of drag from the upper atmosphere so must regularly thrust to keep altitude. Once the satellite was destroyed the pieces that remained in the same orbit would have been subjected to different amounts of drag without any balancing thrust. These would have fallen to earth in days, weeks or months depending on the shape of the pieces, how much drag they incur, and the vectors imparted by the impact force.
Some pieces, likely very few, may have been put into a significantly different orbit by the force of the impact, so it is possible that they may be in orbit significantly longer. These pieces are a threat to other satellites.
As for whether it was effective the answer is no. The satellite's orbit was decaying but its path was predictable enough for other satellites to avoid it. Having one big chunk of satellite reenter as a piece is much better than several million small pieces of ex-satellite in unpredictable orbits. Shooting the satellite turned it into a cloud of debris which is harder to avoid, the opposite effect to the stated goal.