If everything else is normal, I would suggest replacing the Coolant Temperature Sensor. It's located just underneath the EGR solenoid which has to be removed for easier access to the CTS. It gives info to the ECM for use in adjusting injector pulse width. If you do replace it, I'd have the new one on hand before removing the old one. There is some loss of coolant, but usually only a few ounces. Also, have a small pipe wrench on hand and some plumbers pipe dope.
The CTS sits horizontally and points toward the passenger wheel. It screws into a reducer which in turn screws into the engine. The reducer has a habit of coming out with the CTS. The pipe wrench comes in handy for separating the two, once removed.
Once separated, wrap the CTS threads with some Teflon tape and install into the reducer, then put some plumbers pipe dope onto the reducer and use a deepwell socket to reinstall.
When you go to the parts store, tell them you want the temperature sensor for the ECM or fuel injectors and not the one for the gauge/idiot light. The correct one will have an oval head while the round gauge one sending unit will be round and have a slit in the plastic terminal.
Or, if you want to test your old one before replacing it, look above at the 3rd thread down. GM Temperature Sensor Chart.