If you're querying multiple Site Collections use `FullTextSQLQuery` since it searches across the farm and if you plan to query Pages Library of a single Site Collection, use `SPSiteDataQuery` instead. I think you might need `SPSiteDataQuery`?


        SPSiteDataQuery queryObj = new SPSiteDataQuery();      
        //query Pages libraries
        queryObj.Lists = "<Lists ServerTemplate='850' />"; 
        queryObj.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='FileRef' />";
        queryObj.Webs = "<Webs Scope='Recursive' />";
        DataTable dt = SPContext.Current.Web.GetSiteData(query);
      
        foreach (DataRow row in dt.Rows)
        {
            //do something else
        }


P.S. `FullTextSqlQuery` may not always return the freshest of data but you can reduce the incremental crawl schedule to 15 mins or 30 mins.


**Update:**

Set the QueryText property of your `FullTextSQLQuery` object like this:

    fullTextSqlQuery.QueryText =
    "select title, ContentClass from scope() where (contentclass = 'STS_List_850')";


**"STS_List_850": // denotes a Page Library**