> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-vortex-format.mintlify.site/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 CloudOnlyBadge = () => {
  return <div className="cloudBadge">
            <div className="cloudIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path fillRule="evenodd" clipRule="evenodd" d="M5.33395 12.6667H12.3739C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00004 12.3739 8.00004H12.0839V7.33337C12.0839 5.12671 10.2906 3.33337 8.08395 3.33337C6.09928 3.33337 4.45395 4.78537 4.14195 6.68204C2.55728 6.76271 1.29395 8.06204 1.29395 9.66671C1.29395 11.3234 2.63728 12.6667 4.29395 12.6667H5.33395Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'Uniquement sur ClickHouse Cloud'}
        </div>;
};

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Version", "Valeur par défaut", "Commentaire"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        Historique des versions
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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](/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_creating_set_partitions_independently">
  ## force\_creating\_set\_partitions\_independently
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "Nouveau paramètre permettant de forcer la prédéduplication pour chaque partition lors de la création d'ensembles pour `IN (subquery)`, même lorsque la vérification du déséquilibre des partitions l'ignorerait."}]}]} />

Force la prédéduplication pour chaque partition lors de la création d'ensembles pour `IN (subquery)` lorsqu'elle est applicable, mais que la vérification du déséquilibre des partitions (la plus grande partition représente plus du double de la moyenne) a décidé de ne pas l'utiliser. Contourne uniquement la vérification du déséquilibre de [allow\_creating\_set\_partitions\_independently](/fr/reference/settings/session-settings/allow#allow_creating_set_partitions_independently) ; les autres conditions s'appliquent toujours.

<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_distinct_partitions_independently">
  ## force\_distinct\_partitions\_independently
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "Nouveau paramètre permettant de forcer l'évaluation indépendante de `DISTINCT` pour chaque partition, même lorsque l'heuristique de coût déciderait de ne pas l'utiliser."}]}]} />

Force l'évaluation indépendante de `DISTINCT` pour chaque partition lorsqu'elle est applicable, mais que l'heuristique de coût a décidé de ne pas l'utiliser. Ne contourne que l'heuristique de coût de [allow\_distinct\_partitions\_independently](/fr/reference/settings/session-settings/allow#allow_distinct_partitions_independently) ; les autres conditions restent applicables.

<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](/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](/fr/reference/engines/table-engines/mergetree-family/mergetree).

<div id="force_read_through_distributed_cache">
  ## force\_read\_through\_distributed\_cache
</div>

<CloudOnlyBadge />

<SettingsInfoBlock type="BoolAuto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "auto"},{"label": "Nouveau paramètre qui surcharge le paramètre serveur `enable_read_through_distributed_cache` pour une seule requête."}]}, {"id": "row-2","items": [{"label": "26.8"},{"label": "auto"},{"label": "Nouveau paramètre qui surcharge le paramètre serveur `enable_read_through_distributed_cache` pour une seule requête."}]}]} />

N'a d'effet que dans ClickHouse Cloud. Surcharge le paramètre serveur `enable_read_through_distributed_cache` pour une seule requête. `auto` (valeur par défaut) indique d'utiliser le paramètre serveur.

<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

<div id="force_window_partitions_independently">
  ## force\_window\_partitions\_independently
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "Nouveau paramètre permettant de forcer l’évaluation indépendante des fonctions de fenêtre pour chaque partition, même lorsque l’heuristique de coût déciderait de ne pas l’appliquer."}]}]} />

Force l’évaluation indépendante des fonctions de fenêtre pour chaque partition lorsqu’elle est applicable, mais que l’heuristique de coût a décidé de ne pas l’utiliser. Contourne uniquement l’heuristique de coût de [allow\_window\_partitions\_independently](/fr/reference/settings/session-settings/allow#allow_window_partitions_independently) ; les autres conditions restent applicables.

<div id="force_write_through_distributed_cache">
  ## force\_write\_through\_distributed\_cache
</div>

<CloudOnlyBadge />

<SettingsInfoBlock type="BoolAuto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "auto"},{"label": "Nouveau paramètre qui surcharge, pour une seule requête, le paramètre serveur `enable_write_through_distributed_cache`."}]}, {"id": "row-2","items": [{"label": "26.8"},{"label": "auto"},{"label": "Nouveau paramètre qui surcharge, pour une seule requête, le paramètre serveur `enable_write_through_distributed_cache`."}]}]} />

N’a d’effet que dans ClickHouse Cloud. Surcharge, pour une seule requête, le paramètre serveur `enable_write_through_distributed_cache`. `auto` (valeur par défaut) signifie que le paramètre serveur est utilisé.
