NOLOCK
NOLOCK is a table hint that should be used as much as possible as it improves the performance of queries and eliminates blocking through lock contention.
Essentially, NOLOCK performs uncommitted reads, which can be detrimental in certain applications but typically not in Plant Applications. An uncommitted read means that the query is taking the data as is, even though the transaction creating/updating the data may not have completed. In a banking application this could have a serious impact as most reporting is done on the current balances. However, in Plant Applications, most reporting is done after on existing data that is not modified to a large degree (typically only manually).
For example, if a report summarizing downtime was run at 8:00:00 AM and the operator changed a fault assignment at exactly the same time as well, an uncommitted read would miss the fault change.
However, since the fault change transaction only takes a few milliseconds, the window for this situation to occur is extremely miniscule. So, if the operator changed the fault at 8:00:01, then the report would have to be rerun anyways.
The syntax for NOLOCK is as follows:
SELECT *
FROM dbo.Timed_Event_Details AS ted WITH (NOLOCK)
JOIN dbo.Timed_Event_Faults AS tef WITH (NOLOCK) ON ted.TEFault_Id = tef.TEFault_Id;
The following website further describes the functionality and performance benefits of NOLOCK: http://www.sqlservercentral.com/columnists/WFillis/2764.asp.