On a previous post of yours I gave you some information on how to analyze your query - see
When run query for only part it take too much time for only one part why ?[
^]. One glance at your execution plan tells me that perhaps you ought to look at the indexes on table
Parts.Nop_PartsFamilyAttribute
You have already found Brent's site so explore the information that is provided there - e.g.
sp_BlitzIndex® - SQL Server's Index Sanity Test[
^]
See @Richard-MacCutchan 's comment and do something about having to return so many rows at once - this article might help
SQL Server 2005 Paging Results[
^] (ignore the 2005 version, it should still work in 2012)
We really cannot provide you with much more help without table schema information and some sample data (ideally the script to create the tables and populate them with a small sample of the data). It's also a good idea to explain what it is that you are trying to get out of the database, e.g. some expected results for the sample data given. Help us to help you.