> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# paramètres de session force_*

> Paramètres de session ClickHouse du groupe généré force_*.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Type</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Par défaut</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modifiable sans redémarrage
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Ces paramètres sont disponibles dans [system.settings](/docs/fr/reference/system-tables/settings) et sont générés automatiquement à partir du [code source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="force_aggregate_partitions_independently">
  ## force\_aggregate\_partitions\_independently
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Force l’utilisation de l’optimisation lorsqu’elle est applicable, même si les heuristiques ont décidé de ne pas l’utiliser

<div id="force_aggregation_in_order">
  ## force\_aggregation\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ce paramètre est utilisé par le serveur lui-même pour prendre en charge les requêtes distribuées. Ne le modifiez pas manuellement, car cela perturberait le fonctionnement normal. (Force l'utilisation de l'agrégation dans l'ordre sur les nœuds distants lors de l'agrégation distribuée).

<div id="force_data_skipping_indices">
  ## force\_data\_skipping\_indices
</div>

Désactive l’exécution de la requête si les indices de saut de données spécifiés n’ont pas été utilisés.

Prenons l’exemple suivant :

```sql theme={null}
CREATE TABLE data
(
    key Int,
    d1 Int,
    d1_null Nullable(Int),
    INDEX d1_idx d1 TYPE minmax GRANULARITY 1,
    INDEX d1_null_idx assumeNotNull(d1_null) TYPE minmax GRANULARITY 1
)
Engine=MergeTree()
ORDER BY key;

SELECT * FROM data_01515;
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices=''; -- query will produce CANNOT_PARSE_TEXT error.
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices='d1_idx'; -- query will produce INDEX_NOT_USED error.
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='d1_idx'; -- Ok.
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`'; -- Ok (example of full featured parser).
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- query will produce INDEX_NOT_USED error, since d1_null_idx is not used.
SELECT * FROM data_01515 WHERE d1 = 0 AND assumeNotNull(d1_null) = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- Ok.
```

<div id="force_grouping_standard_compatibility">
  ## force\_grouping\_standard\_compatibility
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.9"},{"label": "1"},{"label": "Fait en sorte que la fonction GROUPING produise la même sortie que dans le standard SQL et les autres DBMS"}]}]} />

La fonction GROUPING renvoie 1 lorsque l’argument n’est pas utilisé comme clé d’agrégation

<div id="force_index_by_date">
  ## force\_index\_by\_date
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Désactive l’exécution de la requête si l’index ne peut pas être utilisé avec une date.

Fonctionne avec les tables de la famille MergeTree.

Si `force_index_by_date=1`, ClickHouse vérifie si la requête comporte une condition sur la clé de date pouvant être utilisée pour restreindre les plages de données. S’il n’existe aucune condition appropriée, une exception est levée. Cependant, il ne vérifie pas si cette condition réduit la quantité de données à lire. Par exemple, la condition `Date != ' 2000-01-01 '` est acceptable même lorsqu’elle correspond à toutes les données de la table (c’est-à-dire que l’exécution de la requête nécessite un parcours complet). Pour plus d’informations sur les plages de données dans les tables MergeTree, consultez [MergeTree](/docs/fr/reference/engines/table-engines/mergetree-family/mergetree).

<div id="force_primary_key">
  ## force\_primary\_key
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Désactive l’exécution de la requête si l’utilisation de l’index de clé primaire n’est pas possible.

Fonctionne avec les tables de la famille MergeTree.

Si `force_primary_key=1`, ClickHouse vérifie si la requête comporte une condition sur la clé primaire qui peut être utilisée pour restreindre les plages de données. S’il n’existe pas de condition appropriée, une exception est levée. Cependant, ClickHouse ne vérifie pas si cette condition réduit la quantité de données à lire. Pour plus d’informations sur les plages de données dans les tables MergeTree, voir [MergeTree](/docs/fr/reference/engines/table-engines/mergetree-family/mergetree).

<div id="force_remove_data_recursively_on_drop">
  ## force\_remove\_data\_recursively\_on\_drop
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Supprime récursivement les données lors d’une requête DROP. Évite l’erreur 'Directory not empty', mais peut supprimer silencieusement des données detached
