Thwarting some awful parameter sniffing
The sniff comes from the NULL or the empty string. The addition of % is ignored.
You can fix this one of 2 ways:


Use parameter masking, by using another variable internally, say @IstrItem
SET @IstrItem = ISNULL(@strItem, '') + '%'
Add OPTIMIZE FOR UNKNOWN hint to the query


Other observations:


Why not an index on all 3 columns? One of these is probably best
serltnum, txdate, itemnmbr or txdate, serltnum, itemnmbr
Do datatypes and length match? eg txdate is datetime, itemnmbr is varchar(20) etc
If not, indexes will be ignored
So many non-key columns will require a key lookup, or the indexes are being ignored
See Simple Talk's covering indexes article for more