A Quebec judge said Monday morning that delays in the case, which spanned more than four years, were unacceptable.
The judge blamed the Crown for the delays.
The three-time Olympian was arrested in Mascouche, Que., in September 2007 shortly after 5 a.m. ET.
He allegedly swerved while driving near his home, an incident witnessed by a police officer.
His blood-alcohol level was found to be nearly twice the legal limit.
Gagnon, 37, told Radio-Canada on Monday that he believes he has paid his debt to society. He said he has suffered significantly in the years since his arrest and has received threats. He has also struggled with financial and marital problems.
"I can finally think of other things now," he said after the judge released his decision.
Gagnon retired from speedskating in 2002 after a 24-year career. He won five Olympic medals, including the gold in the 500-metre event, at that year's Salt Lake City Games.