The San Francisco Giants enter play on Tuesday night with the second best record in the National League—sitting atop the National League West with a record of 45-35, 1.5 games ahead of the rival Los Angeles Dodgers.

It has been the pitching staff that has been largely responsible for the Giants' excellent first half of the season. The offense remains below average, as it has been every season since 2004—the final MVP season from former star slugger Barry Bonds.

The Giants' pitching staff ranks as the third best in baseball with a team ERA of 3.37. Their Fielding Independent Pitching (FIP), which removes factors outside of the pitcher's control such as team defense, is the second best in baseball.

Offensively, the Giants are 23rd in runs scored, 21st in OPS, 25th in slugging, 29th in home runs and 24th in walks. The lack of power and impatience in the batter's box has not been a recipe for offensive success.

On the bright side, the Giants don't strike out a lot—they are the sixth best in baseball at avoiding the whiff. That high contact approach has led to a .262 team batting average (10th best in baseball) and a .320 on-base percentage, which is 15th.

The Giants also have improved their team speed with the acquisitions of Angel Pagan, Gregor Blanco and Melky Cabrera in the outfield. They rank third in baseball with 65 stolen bases.

Defensively, the Giants rank 21st in the FanGraphs metric Defensive Runs Saved, 15th in Ultimate Zone Rating and 27th in fielding percentage. However, in the Baseball Prospectus metric for defense (called Defensive Efficiency—which measures the percentage of balls put in play turned into outs by the defense), the Giants rank seventh with a conversion rate of 72 percent.

In sum, the Giants have had great pitching, a high-contact offense with speed—but without a lot of patience or power —and a defense that converts a high percentage of balls put in play into outs, despite a lot of errors.

What about the sum of the parts? Let's take a look at each of the 25 Giants players using the 2-8 grading scale that teams use. An eight is a Cy Young or MVP season, seven is an All-Star season, six is very good, five is average, four is below average, three is not very good and two is the Manny Burriss level of futility. (All of the stats in this article are courtesy of FanGraphs).

Matt Cain: 8.0

Jason O. Watson/Getty Images

Mr. Perfect was the ace of the staff in the first half, hurling a perfect game while posting a 2.53 ERA. He is a strong candidate to win the National League Cy Young if he continues to pitch at this level. Cain is on pace to set a career-high in strikeouts and a career-low in walks. The Giants 27-year-old ace just keeps getting better with age.

Melky Cabrera: 7.0

Tony Medina/Getty Images

The Melk Man delivered in the first half, hitting .352/.394/.514 and making Brian Sabean look like a genius for acquiring him in the offseason. The only question now is if the Giants can lock up the impending free agent to a long-term deal.

Buster Posey: 7.0

Tony Medina/Getty Images

The Giants' sweet-swinging backstop returned from a catastrophic collision last season to hit .303/.370/.480 with a team-leading 10 home runs, earning the starting nod in the Midsummer Classic next week. The 25-year-old has established himself as one of the best catchers in the game, and the Giants will have him for at least the next four seasons.

Ryan Vogelsong: 7.0

Thearon W. Henderson/Getty Images

Ryan Vogelsong pitches with a chip on his shoulder, and an intensity and concentration-level unmatched in the game today. He was left off the National League All-Star roster, but that doesn't mean he didn't have an All-Star caliber first half. He led all Giants starters with a 2.26 ERA, and a ridiculous 14 quality starts in 15 attempts.

Madison Bumgarner: 7.0

Jason O. Watson/Getty Images

Madison Bumgarner is just another Giant starter worthy of an All-Star appearance with a sub-3.00 ERA. Like Vogelsong, Bumgarner was given the snub by Tony La Russa. At an age when most of his peers are college seniors, Bumgarner has already established himself as one of the top pitchers in the game.

Pablo Sandoval: 6.0

While Vogelsong, Bumgarner and Romo were deserving candidates who got left off of the All-Star roster, Sandoval was a less deserving candidate that got voted in by the Giants' adoring fanbase.

Sandoval has struggled defensively due to his lack of conditioning, and he missed a month with a broken hamate bone for the second consecutive season. However, his .300/.362/.471 batting line is outstanding. The Giants need a healthy, lighter Panda during the second half.

Brandon Belt: 6.0

Tony Medina/Getty Images

Belt got caught in a four-man platoon at first base for much of the first half as he struggled to make adjustments to his swing. When Brett Pill got sent down and Aubrey Huff went on the disabled list, Belt finally started to receive regular playing time.

He has rewarded the Giants with excellent defense, solid baserunning, elite patience and some developing power. Add it all up and Belt's .269/.376/.446 batting line is the third best on the team behind Cabrera and Posey.

Angel Pagan: 6.0

Tony Medina/Getty Images

Angel Pagan was another shrewd offseason trade acquisition by Brian Sabean. Pagan struggled at the beginning of the season before going on a tear, then cooled off during the past couple of weeks. He leads the Giants with 15 stolen bases, and is fifth on the team with a respectable .757 OPS.

Gregor Blanco: 6.0

Blanco signed a minor league deal with the Giants during the winter, made the team with a stellar spring training, then stole the starting right field job from Nate Schierholtz in April.

Blanco has cooled off after a torrid start, but his defense, baserunning and patience have been a boon to the Giants. He is second on the team with 14 steals, second in walk percentage and first in defensive range, which he showed off with the web gem of the season to save Matt Cain's perfect game.

Jeremy Affeldt: 6.0

Jason O. Watson/Getty Images

Affeldt had an excellent first half despite missing time on the disabled list with a knee injury. He posted a nearly three-to-one strikeout-to-walk ratio, a 58 percent ground-ball rate and an outstanding 2.48 ERA.

Javier Lopez: 5.5

Tony Medina/Getty Images

Lopez was re-signed during the winter to continue to do one thing: get lefties out. He has delivered on that bargain, holding lefties to a .222 batting average thus far. Unfortunately, righties are hitting .435 against Lopez, so Bochy will need to be careful in how he deploys Lopez going forward.

Clay Hensley: 5.0

Thearon W. Henderson/Getty Images

Everyday Clay is second on the Giants with 33 appearances, and he has a respectable 3.41 ERA. Hensley has allowed too many baserunners, mostly by way of the walk. Fortunately, he has missed enough bats and induced enough ground balls to avoid major trouble thus far.

Hector Sanchez: 5.0

Tony Medina/Getty Images

Sanchez has been an upgrade as the back-up catcher over Eli Whiteside and Chris Stewart from last season. He doesn't walk at all, but he makes solid contact and hits for power. He also has helped Barry Zito and Tim Lincecum snap out of early-season funks behind the dish.

Barry Zito: 5.0

Tony Medina/Getty Images

Zito has given the Giants nine quality starts in 16 tries, and a respectable 3.84 ERA, perfectly acceptable for a fifth starter. When Zito has command, he is excellent, as he was two starts ago when he mowed down the Dodgers for seven shutout innings.

When he doesn't have command, he can be terrible, as he was three starts ago against the Angels when he allowed eight runs and didn't make it out of the fourth inning.

Ryan Theriot: 5.0

Thearon W. Henderson/Getty Images

Theriot gets a pass for his horrendous start to the season because he was playing through an injury. He hit .307/.333/.351 during June with eight steals, which is acceptable for a second baseman, though far from spectacular.

Tim Lincecum: 4.0

Thearon W. Henderson/Getty Images

It's been a rough first half for the freak. Only five qualified pitchers in all of baseball have a worse ERA than Lincecum (5.60). He is still missing a ton of bats despite losing additional velocity, but his command has failed him in 2012. Only five starters have walked a higher percentage of batters than Lincecum.

On the positive side, his last two outings have been his best of the season, and he enters play Tuesday night with 12 straight scoreless innings.

Brandon Crawford: 4.0

Tony Medina/Getty Images

Crawford has shown great range and an outstanding arm in the field, though he has struggled with the routine play at times. The Giants desperately need more from him on offense, however. His .232/.282/.328 batting line might be acceptable in the Yankees' stacked lineup, but on a team devoid of power, the Giants need more from their slick-fielding shortstop.

Nate Schierholtz: 4.0

Tony Medina/Getty Images

For the second time in the past three seasons, Nate Schierholtz won the everyday right field job in spring training, only to lose it by the end of the first month of the regular season. Schierholtz is an excellent right fielder, but he has never hit enough to warrant an everyday job. With Blanco suddenly struggling, perhaps Schierholtz will get a final shot at a starting job during the second half.

Joaquin Arias: 4.0

Ezra Shaw/Getty Images

The Giants' Kobe Bryant lookalike did an admirable job filling in at the hot corner when Pablo Sandoval went down, particularly with the glove. The journeyman minor league free agent is not much with the bat, but he can play a very solid third, short and second.

Manny Burriss: 2.0

Sarah Glenn/Getty Images

The end is near for Manny Burriss. He received only 10 at-bats in June, which is to be expected when a guy hits just .211/.272/.219 with one extra base hit during the first half. He has speed, but he isn't a particularly useful baserunner or fielder.

If the Giants don't make a big splash at the deadline, replacing Burriss on the bench with a useful piece would be a smart way to upgrade the roster.

George Kontos: Incomplete

Tony Medina/Getty Images

Kontos has looked solid in seven appearances, striking out nine and allowing just one walk while posting a 2.16 ERA. Kontos has not pitched enough to earn a grade, but he looks like another solid pickup by Sabean, who acquired Kontos in a trade for Chris Stewart on the eve of Opening Day.

Brad Penny: Incomplete

Tony Medina/Getty Images

Three years after the Giants picked up Penny as a starter on the waiver wire for the stretch run, he is back in a Giants uniform as the long reliever. Penny threw the ball well in his lone appearance over the weekend, with his fastball reaching as high as 93 MPH. The Giants are hopeful that he can replace former reliever Guillermo Mota, who is suspended until the end of August.

Justin Christian: Incomplete

Jason O. Watson/Getty ImagesChristian is somehwere in this pile.

Justin Christian has been on the team for three weeks, and has accumulated just six at-bats. This is another area where the Giants should look to improve if they don't make a big splash. Having better late-game options than Christian and Burriss off the bench could help steal a few wins down the stretch.

Rather than worrying about Christian, take a look at the picture of the Giants celebrating Cain's perfect game, and fondly remember the first half. If the Giants continue on their current pace, they will be celebrating a National League West championship in October.