Another related question:
Alice has 10 BTC on her bitcoin address. Bob (who dont know Alice) sends 1 satoshi to Alice's address every time he make a transaction (1 input 2 output address). He do it 1000 times. What happens when Alice after this spend 1 BTC? Her bitcoin client maybe will use those satoshis and her transaction (and fee) will be huge?
That depends on which client she uses, and how that client decides which outputs to spend.
It is possible that her client just spends the 10 BTC output and sends 9 BTC back to her wallet.
If the 10 BTC output is aged enough, it is also possible that her client could send 10.00000040 (using up 40 of the 1 satoshi outputs) and still keep the transaction size less than 10 kilobytes. It could then send 9.00000040 back to her wallet. I think this would be preferred behavior, but I'm not sure if any clients handle the transaction in this way.