У меня есть такая таблица:
CREATE TABLE [dbo].[MoneyTrans]
(
[Trans_id] [nvarchar](25) NULL,
[Amount] [nvarchar](25) NULL,
[Currency] [nvarchar](11) NULL,
[ExchangeRate] [nvarchar](25) NULL,
[CorrAmount] [nvarchar](25) NULL,
[senderName] [nvarchar](255) NULL,
[SenderPhone] [nvarchar](20) NULL,
[RecipientName] [nvarchar](255) NULL,
[RecipientPhone] [nvarchar](20) NULL,
[SenderPr] [nvarchar](5) NULL,
[RecipientPr] [nvarchar](5) NULL,
[Trans_Status] [nvarchar](25) NULL,
[SendDate] [nvarchar](12) NULL,
[Receivdate] [nvarchar](12) NULL,
[Trans_type] [nvarchar](25) NULL
) ON [PRIMARY]
и все запросы выглядят как
SELECT *
FROM MoneyTrans
WHERE [senderName] = 'some one' OR [RecipientName] = 'some one'
или
SELECT *
FROM MoneyTrans
WHERE [SenderPhone] = '123456' OR [RecipientPhone] = '123456'
Какова лучшая стратегия индексирования?
Использовать ли индексы покрытия вот так
CREATE NONCLUSTERED INDEX [ix_MoneyTrans_NamPhon]
ON [dbo].[MoneyTrans] ([senderName] ASC, [RecipientName] ASC)
INCLUDE ([Trans_id], [Amount], [Currency], [ExchangeRate], [CorrAmount],
[SenderPhone], [RecipientPhone], [SenderPr], [RecipientPr],
[Trans_Status], [SendDate], [Receivdate], [Trans_type])
или просто использовать обычный некластеризованный индекс?
Надеюсь, вы можете мне помочь, большое спасибо.