1. Scanning tables
It is a leanear operation which can fetch data block containing row and apply filter or condition.
Scanning small table is efficient. Scanning large tables can be efficient if few queries. Scanning large tables repeatedly is inefficient.
It's worth looking into why a full table scan was chosen and seeing if there isn't a more efficient way to retrieve data.
Creating indexes is a good way to avoid full table scan and make execution plans more efficient.