What comes to the differences in speed with statement one and two, the only certain thing is that in the first one only 30 or less records are transferred to the caller. In the second one all the rows are transferred which may be more than 30. Because of this there probably is less network traffic in the first one which may make the query faster.
What comes to the differences in actual execution, it depends. The key is, how early the TOP expression can be evaluated in the execution plan, the earlier the better. However this is decided by the database when the optimal execution plan is created.
A good rule of thumb is, never fetch more than needed. If you need just first 30 rows then use TOP to return those. However, you haven't specified any ordering so the top 30 records would be 'random' ones.
Another rule of thumb is that you should take care if indexing. Indexes are the key to fast data access and for good execution plans. Good indexing will help you to build fast statements.
So how would you know what plan the database has for fetching the data. If you use Sql Server Management Studio, you can utilize the execution plan explanation, either estimated or actual. By interpreting the plan you'll see how the statement will be executed and you're also able to pinpoint the problems in executions, for example missing indices etc.
For more info, see
Display the Estimated Execution Plan[
^]