I often find shell completions get slowed down (having to hit tab several times instead of one) by files I never need to be included in completions. In zsh we can simply ignore those globs like so:

zstyle ':completion:*' ignored-patterns \
    '*-lock' '*-lock.*' \
    '*.tmp' '*.temp' \
    '*.swp' '*~'