Hello,
/api/sam/v2/software_instances Gives option to filter by computer attributes. Using criteria and computer ID would be the fastest way to get the data. Example computer related columns are: computer_id,computer_bigfix_id, computer_dns_name, computer_name
So for example for comptuer_id 123456:
/api/sam/v2/software_instances?criteria={"and":+[["is_present",+"=",+"1"],+["is_suppressed",+"=",+"0"],+["computer_id",+"=",+"123456"]]}
To have computer group filtering – create user that has access only to that group and use that user to pull out data from BFI. Then BFI will limit the access to only those computers and then:
/api/sam/v2/software_instances?criteria={"and":+[["is_present",+"=",+"1"],+["is_suppressed",+"=",+"0"]]}
countSwitch will get rid of one extra call to count the number of records. For 3000 computers I would make a single call, so no limit/offset.
What columns are you selecting? Standard set or something extra? Are the index stats up-to-date? Maybe executions plans needs refresh (restart of database or enforcing cleanup of execution plan cache).