Hallo Hansa,
das kann man so nicht einfach sagen - jede Datenbank optimiert anders. Der Unique Key hat ja den Vorteil, dass es unmöglich wird, zwei übereinstimmende Datensätze einzufügen. Wenn es möglich ist, dass es in einem Monat zwei Datensätze im selben Monat zum selben Kunden gibt - gratis und gegen Bares - dann musst Du das Feld dazu nehmen. Das Einfügen der Daten wird natürlich immer langsamer, je mehr Felder Du zum Key dazufügst.
Mehrere Tabellen lösen dieses Problem auch nicht, denn dann hast Du mehrere Insert-Operationen, die mehrere, wenn auch einfachere Keys aktualisieren müssen.
Zum Suchen in en Daten solltest Du ohnehin noch zusätzliche Indizes auf die üblichen Suchkriterien (vermutlich Jahr/Monat, ID_ART und ID_Kunde) erstellen. Das Gratis-Feld brauchst Du normalerweise nicht indizieren. Zumindest bei Oracle ist ein Index erst bei einer dreistelligen Zahl unterschiedlicher Werte in einem Feld wirklich sinnvoll.
Am besten wäre vielleicht, Du würdest die Tabelle mal per Programm mit einigen 10000 Datensätzen füllen und dann mal die Performace mit Einfüge- und Abfrage-Operationen testen.